javascript - Reactjs:在 setState 中使用时 Obj 被重新分配,有些奇怪

标签 javascript reactjs ecmascript-6

所以,我有这个基础对象:

const obj = {
    name: 'bill',
    age: 44,
    cid: 0
}

并且在我的应用程序的各个部分中,我在我的状态下“重置”到这个对象。问题是,如果我尝试重新分配 obj,cid 总是被覆盖 - 如果我显式重新分配,它是干净的.. ala.

// this is psuedo code, but this would break in that
// var2 now has some bleedover with other objects dirtying things up
this.setState({
    key1: [_.merge([whatetever], {this.state.var1}],
    key2: [this.obj]
})

注意:当我注销“this.obj”时,它发生了某种变异。

// this way is fine

this.setState({
    key1: [_.merge([whatetever], {cid},{this.state.var1}],
    key2: [{
        name: 'bill',
        age: 444,
        cid: 0
    }]
})

但是在 5 个左右的地方显式地重新分配整个对象是很蹩脚的..为什么我不能重新分配 obj 引用。我多年来从未遇到过这种情况......当然,这是一个重新分配问题,也许是 es6 反向分配的问题?

你有什么想法吗?

最佳答案

尝试以下操作:

key2: Object.assign({}, state['key2'], this.obj)

虽然使用 this.obj 很奇怪。难道不应该是 propsstate 吗?

我仍然不太确定您想通过“重置”来做什么。

关于javascript - Reactjs:在 setState 中使用时 Obj 被重新分配,有些奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35754548/

相关文章:

javascript - react : Have to constantly update state to make textarea editable

javascript - 是否有可能捕获链式 promise 之间的错误?

Javascript:破坏性的 array.filter()?

javascript - Angular 中的 ES6 生成器函数

javascript - Laravel 5.6 如何将 URL 作为 URL 参数传递?

javascript - 在 React Hook 中设置一个对象

javascript - Bootstrap 类在 ReactJS 组件中不起作用

javascript - 当父组件和子组件都是函数组件时,如何将函数作为 Prop 传递?

javascript - html提交输入上的iOS 7奇怪按钮

javascript - Mapbox/Leaflet .bottom 控件在 map 上方呈现并且看不见