let oldMessages = Object.assign({}, this.state.messages);
// this.state.messages[0].id = 718
console.log(oldMessages[0].id);
// Prints 718
oldMessages[0].id = 123;
console.log(this.state.messages[0].id);
// Prints 123
如何防止
oldMessages
成为引用,我想更改oldMessages
的值而不更改state.messages
的值 最佳答案
您需要进行深拷贝。 Lodash's cloneDeep使这个变得容易:
import cloneDeep from 'lodash/cloneDeep';
const oldMessages = cloneDeep(this.state.messages);
oldMessages[0].id = 123;
关于javascript - 如何在React中深度克隆对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48710797/