这是关于Redux js中的状态的问题.我在状态中有一个数组列表:
{ list: list }
根据Redux文档,我不应该修改reducer中的状态.我想在列表中附加一个新项目.我应该克隆列表,还是只是将新项目附加到列表中:
let newList = state.list; newList.push(newItem); return { list: newList }
上面的代码实际上修改了原始状态,因为newList与"state.list"是相同的列表.这是一个好的做法,还是应该使用immutableJS克隆列表?
您正在改变列表并返回相同的参考.我相信下面的内容应该是一个新的副本
return { list: [...state.list, newItem] }
使用immutableJS不是强制性的.但你需要确保不改变状态.
查看深度冻结库以确保您的状态未被编辑.
来自Dan(redux的创建者)的这段视频也应该有所帮助