javascript - 尝试将新属性添加到 redux 状态时,javascript map.set 不起作用
问题描述
在我的 redux 状态下,我有一个如下地图列表
[
{
"id": "id1",
"code": "code0"
},
{
"id": "id2",
"code": "code1"
}
]
我无法将新属性添加到上述地图列表中。下面是我用来向地图添加新属性的代码
case SET_NEW_PROPERTY: {
const a = currentState.get('reduxstate')
a.forEach((mapObj, index) => {
mapObj.set('newproperty', 'value')
}
return currentState.set('reduxstate', a)
}
我不确定为什么该设置不起作用。任何帮助表示赞赏。提前致谢。
解决方案
您应该plain object
在 redux 商店中使用,在这种情况下,将新属性添加到Map
不改变状态,它与Map
.
当连接到 Pure React 组件时,由于 props 没有改变,UI 不会更新。
并且提到,当尝试plain object
在reducer中添加属性时,你应该返回新对象,或者你可以使用combineReducers
,当任何属性值发生变化时它会自动返回新对象。
推荐阅读
- dkim - 当标题“h”标签展开为 2 行时,DKIM 签名失败
- php - 如何在 laravel API 中获取图像的完整路径?
- xsl-fo - 如何在 XSL FO 中迭代 json 数据?
- php - 有没有办法在 PHP 的时间数组中找到最接近的时间?
- c# - 如何在 Cosmos DB 中将“不在”与 ARRAY_CONTAINS 一起使用?
- azure - Flask rest api 并使用 azure 活动目录进行身份验证
- python - 如何在 Eve 应用程序中使用 add_resource?
- python - 归并排序算法的 Python 实现
- c# - Microsoft ML.Net SDCA Regression Trainer 找不到输入列数据
- java - 如何在 GET 请求中使用 RequestParam 上的 Spring MVC 验证在 Thymeleaf 中显示错误消息?