我收到了无效的密钥路径'尝试更新我的结构时出错:
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'对象然后我得到一个错误。
------ ------ UPDATE
我最初设置cmsData对象而不是初始状态
state.set('cmsData', data)
如果我确实将对象作为初始状态,它可以正常工作。但是,在设置之后尝试更新会产生无效的密钥路径
----- -----解
我使用的是mergeDeep而不是设置初始数据!
state.mergeDeep({ 'cmsData': data })
答案 0 :(得分:0)
答案 1 :(得分:0)
您的新项目创建setIn似乎在cmsData
级别。不知道为什么会影响其他访问,但也许你还没有创建你认为你拥有的东西,所以当该项目不存在于该keypath时(即在cmsData中),这是错误的
答案 2 :(得分:0)
我使用的是mergeDeep而不是设置初始数据!
on_checkBox_clicked