我正在尝试更新一个immutablejs对象;
//action.vals = {element: "p", type: "text", content: "test", className: "paragraph-topic"}
return state
.updateIn(['contents'], list => list.push(action.vals)) //<<<<<THis is failing
.set('loading', false)
.set('error', false)
break;`
但是它存储10
一个整数。
我真的很困惑,我需要帮助建议。
非常感谢您的帮助!由于缺乏正确的使用文档,我疯了
答案 0 :(得分:1)
我注意到在LOAD_DATA
减速器上,您将contents
设置为数组,而不是不可变列表:
case LOAD_DATA:
return state
.set('loading', true)
.set('error', false)
.setIn(['contents'], [])
这将导致很多问题。发生的情况是您在更新中使用了香草JS push
函数,并且该函数返回了数组的length
。所以我假设contents
有10个元素?
您只需要更改LOAD_DATA
减速器即可使用它:
.setIn(['contents'], fromJS([]))
或
.setIn(['contents'], new List())
如果使用List()
,则还必须明确导入!
答案 1 :(得分:0)
使用...
做这样的事情。
.updateIn(['contents'], list => [...list, action.vals])