React,get state而不引用

时间:2018-02-09 12:51:55

标签: javascript reactjs state

let a = this.state.a; 
//setted in the constructor: {number: 1}

console.log(a); 
//Prints: {number: 1}

a.number = 2;
console.log(this.state.a);
//Prints: {number: 2}

如何阻止a成为参考,我想更改a的输出值,以更改state.a

的值

3 个答案:

答案 0 :(得分:2)

您可以根据状态对象创建新对象...

let a = { ...this.state.a }; 

创建新对象后,引用将会消失..

我们使用spread运算符来克隆对象,请参阅此article ..

答案 1 :(得分:1)

您可以使用spread运算符创建一个新对象:

let a = { ...this.state.a };

或者,您可以使用Object.assign

let a = Object.assign({}, this.state.a);

答案 2 :(得分:1)

使用Object.assignlet a = Object.assign({}, this.state.a, {number:2});

Object Spread,例如let a = {...this.state.a};