【发布时间】:2020-09-29 22:35:28
【问题描述】:
我有一个简单的 JSON 数据数组,看起来像这样(在我的 Redux 存储中也是一样,我将它存储在 properties 下):
[
{
"id": "room",
"name": "Room",
"description": "Just a room",
"foo": "bar",
},
{
"id": "apartment",
"name": "Apartment",
"description": "just an apartment",
"foo": "bar",
}
]
它必须是一个数组,因为我正在映射它:
{properties.map(property =>
<Property
id={property.id}
name={property.name}
description={property.description}
foo={property.foo}
/>)}
这样我的应用程序中呈现了两个属性。
问题是 - 我如何在 Redux 中更新 "foo"?
这是我目前的减速机written according to the docs:
case 'UPDATE_FOO':
return {
...state,
properties: {
...state.properties,
[action.id]: {
...state.properties[action.id],
foo: action.fooData,
}
}
}
当然它会抛出TypeError: Cannot read property 'room' of undefined,因为我正在尝试访问state.properties["room"],但它不存在。
我一直在考虑重塑我的 JSON 和 Redux 存储,但是一旦我将其更改为命名对象,我就无法对其进行映射...
谢谢!
【问题讨论】:
标签: javascript arrays json reactjs redux