界面的实时更新是根据state和props的变化来实现的
let newList = state.list;
newList[0].name == '123'
return Object.assign({}, state, {
...state,
list: newList
});
newList中元素的值确实变化了,但是界面却不刷新,因为list和newList是数组对象,他们的元素值变化了,但是他们本身的值没有变化,即他们的引用地址没有变化,所以不能够引发界面渲染
解决方法:
let newList = [...state.list];
新创建一个数组保存新的值,会产生一个新的引用地址,再赋值给变量
网友评论