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