我在reactjs状态管理中遇到问题。每次加载组件都会从缓存中加载数据。我对此进行了研究,发现状态是不可变的。我想问一下如何使用immute状态。 目前它就像我在构造函数中的状态中取一个空数组然后我调用组件中的api将挂载并将该状态设置为响应但直到除非Indont清除缓存,状态未显示数据
指导我在这里犯错误的地方,或者我如何使国家免疫
答案 0 :(得分:0)
变异对象:使用Object.assign({},...)
var yourCar = {
color: 'red',
.. the same as neighboursCar
};
var neighboursCar = {
color: 'red',
... the same as yourCar
};
yourCar.color = 'blue'; // reference stays the same!
var yourCarRepainted = Object.assign({}, yourCar, { color: 'blue' });
yourCarRepainted === yourCar; // false
变异数组:使用[] .concat
var list = [1, 2, 3];
var list = [1, 2, 3];
list[1] = 4;
var list = [1, 2, 3];
var changedList = [].concat(list);
changedList[1] = 4;
var list = [1, 2, 3];
var changedList = [].concat(list);
changedList[1] = 2;
list === changedList; // false
React中的this.state和this.setState({})已经是不可变的。
你也可以尝试使用immutable.js第三方库来更好地掌握这个主题。