Javascript Object.assign的奇怪行为
我一直坚持使用javascript中奇怪的赋值行为 在此代码中Javascript Object.assign的奇怪行为,javascript,assign,Javascript,Assign,我一直坚持使用javascript中奇怪的赋值行为 在此代码中 state = Object.assign({}, state, { [area]: Object.assign({}, state[area], { [name] : Object.assign({}, state[area][name], { selected: [value] }) }) }) conso
state = Object.assign({}, state, {
[area]: Object.assign({}, state[area], {
[name] : Object.assign({}, state[area][name], {
selected: [value]
})
})
})
console.log(state) //state[area][name].selected is unchanged!
但如果我尝试控制台log Object.assign
console.log(Object.assign({}, state, {
[area]: Object.assign({}, state[area], {
[name] : Object.assign({}, state[area][name], {
selected: [value]
})
})
}));
//it returns object with value in obj[area][name].selected, as expected
我错了什么
编辑:
Object.assign工作正常。 在本例中,问题在于console.log显示的不是实际数据,而是对对象的引用。
我真正的问题是在某个react组件中处于突变状态(array.pop())。我在这里找不到问题,代码工作正常(请参阅)。问题一定出在其他地方。
console.log
的有趣之处在于输出是实时的。请在您的最后一行尝试console.log(JSON.stringify(state,null,”)
谢谢您的评论!我想这个问题已经问完了。我的问题不在于console.log。非常感谢。