我在javascript中坚持使用奇怪的作业行为。
在此代码中
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!
但如果我尝试控制日志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
我错了什么?
答案 0 :(得分:0)
Object.assign正常工作。 在这种情况下,问题是console.log不显示实际数据,而是显示对象的引用。 我真正的问题是在一些反应组件中改变状态(array.pop())。