Javascript 替换对象减速器中的数组
我有一个元素数组,它是在一个操作中更新的,现在我想在存储中更新它。目前我有一些类似于:Javascript 替换对象减速器中的数组,javascript,reactjs,redux,Javascript,Reactjs,Redux,我有一个元素数组,它是在一个操作中更新的,现在我想在存储中更新它。目前我有一些类似于: navigation |_navigationItems:[{1:"foo"}, {2:"bar"}, {3:"foobar"}] 问题是我在做以下事情: case types.UPDATE_NAVIGATION: return Object.assign({}, state, { navigationItems: action.payload.items, }); 其中项目为:[{1:z
navigation
|_navigationItems:[{1:"foo"}, {2:"bar"}, {3:"foobar"}]
问题是我在做以下事情:
case types.UPDATE_NAVIGATION:
return Object.assign({}, state, {
navigationItems: action.payload.items,
});
其中项目为:[{1:zoo},{2:foobar}]
但商店并没有成功更新
我遗漏了什么吗?文档建议在
对象上使用扩展运算符语法。分配
使用:
你的行为被触发了吗。你能在这个case语句中console.log()并查看是否得到结果吗?在调用case
之后放置一个console.log()
,在那里我更新了数组。尝试扩展运算符语法:case types.UPDATE\u导航:return{…state,navigationItems:action.payload.items}
@shubhamkhattri,请将其作为答案发布,它成功了。但现在:它为什么会起作用?仍然可以使用Object.assign
?Object.assign应该对您有效,据我所知,您的操作是正确的。您也可以参考我的答案,提供更多信息。
case types.UPDATE_NAVIGATION:
return {
...state, navigationItems: action.payload.items
}