在更新数据时,尤其是引用数据类型的数据,如:数组、对象等。直接更新原数据后不会触发render。
例如:如果直接将props中的数据解构出来进行修改,修改后直接更新状态,会出现组件不更新的情况。
可以考虑如下写法:
先将解构出来的数据神拷贝后,在进行操作。
// import deepClone from 'xxxxxx';
onSave=()=>{
let { gridList } = this.props;
let _list = deepClone(gridList);
... // 对 _list 进行操作
this.setState({ gridList: _liist });
// or
// actions.mainModel.updateState({ gridList: _liist });
}