我的 redux 状态中有一个如下所示的 map 列表
[
{
"id": "id1",
"code": "code0"
},
{
"id": "id2",
"code": "code1"
}
]
我无法将新属性添加到上面的 map 列表中。下面是我用来向 map 添加新属性的代码
case SET_NEW_PROPERTY: {
const a = currentState.get('reduxstate')
a.forEach((mapObj, index) => {
mapObj.set('newproperty', 'value')
}
return currentState.set('reduxstate', a)
}
我不确定为什么该装置无法工作。任何帮助表示赞赏。提前致谢。
最佳答案
你应该在redux存储中使用plain object
,在这种情况下,向Map
添加新属性不会改变状态,它与Map<的引用相同
。
当连接到 Pure React Component 时,由于 props 没有改变,UI 不会更新。
还有,当尝试在reducer中向plain object
添加属性时,你应该返回新对象,或者你可以使用combineReducers
,它会自动返回新对象任何属性值发生更改。
关于尝试将新属性添加到 redux 状态时,javascript map.set 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52305707/