假设有两个状态是同一个对象,在某个时间点使用setState
对一个对象也会改变状态中的另一个对象。
让我用代码解释一下;
export default class AgentDetail extends Component {
constructor(props) {
super(props)
this.state = {x: 1, y:1 }
}
componentDidMount() {
let theObject = {
someKey: 'someValue'
}
this.setState({
x: theObject,
y: theObject // I also tried with Object.create(theObject) and Object.assign({}, theObject)
})
this.changeStates()
}
changeStates() {
let otherObject = {
someKey: 'someOtherValue'
}
this.setState({
x: otherObject
})
console.log(this.state.y) // { someKey: 'someOtherValue' }
}
}
我希望y成为'someValue',但它会随x变异,我找不到连接。
提前致谢