【发布时间】:2016-08-02 17:03:44
【问题描述】:
我在尝试更新我的结构时遇到“无效的密钥路径”错误:
state = fromJS({
cmsData: {
"pages": [
{
"name": "page1",
"content": {
"header": "Example header",
"intro": "Example intro",
"body": "Example body",
}
}
...
}
我正在尝试使用以下方法更新 pages 数组中的值:
state.setIn(['cmsData', 'pages', index, 'content', title], value)
index 是一个数字,title 是一个字符串,value 也是一个字符串。
我可以通过以下方式创建一个新项目:
state.setIn(['pages', index, 'content', title], value)
但是,一旦我尝试访问主“cmsData”对象,就会出现错误。
-----更新------
我最初设置的是 cmsData 对象,而不是初始状态
state.set('cmsData', data)
如果我确实将对象作为初始状态,它工作正常。但是在设置后尝试更新会产生无效的密钥路径
-----解决方案-----
我没有设置初始数据,而是使用了 mergeDeep !
state.mergeDeep({ 'cmsData': data })
【问题讨论】:
标签: javascript reactjs redux immutability immutable.js