【发布时间】:2017-03-11 12:01:28
【问题描述】:
我的商店:
{
people: [
{
id: 12345,
name: Person 1
},
{
id: 54321,
name: Person 2
}
]
}
我正在尝试更新 Person 1 上的 name 属性。我正在使用 react-addons-update,如下所示:
update(state, {
people: {
[action.person.id]: {
name: action.person.name
}
}
}
其中action.person 是一个对象{ id: 12345, name: New name }。
但是,我不断收到错误消息:
Uncaught (in promise) TypeError: Cannot read property 'name' of undefined(...)
这是在react-addons-update 的update 方法中抛出的。具体来说,
for (var k in spec) {
if (!(ALL_COMMANDS_SET.hasOwnProperty(k) && ALL_COMMANDS_SET[k])) {
nextValue[k] = update(value[k], spec[k]); // Error occurs here
}
}
据我所知,问题是当nextValue、value 和spec 都设置为people 时,k 设置为action.person.id。当然,该 id 不存在于数组中(它是一个人数组)。
所以我的问题是,我可以传入什么而不是 [action.person.id] 来执行此操作?根据this 和this 我所拥有的应该可以工作。
【问题讨论】:
-
ps 你应该使用immutability-helper –
react-addons-update是deprecated
标签: javascript reactjs redux