使用ImmutableJs清空数组

时间:2016-09-04 20:03:02

标签: javascript arrays redux immutable.js

我正在ImmutableJSRedux使用redux-immutable。假设我有一个初始状态,它是一个空数组:

const initialState = fromJS({
  items: [],
  other: true,
});

我可以添加一个项目:

case ADD_ITEM:
      return state
      .updateIn(['items'], list => list.concat({id: 1231}))
      .set('other', false);

之后我尝试使用setupdateIn清空项目数组:

case EMPTY_ARRAY:
          return state
          .updateIn(['items'],[])
          // or
          .set('items', []);

当我尝试使用state.get('items').toJS()时出现错误:

items.get(...).toJS is not a function

清空这个嵌套的不可变数组的正确方法是什么?

1 个答案:

答案 0 :(得分:6)

case EMPTY_ARRAY:
      return state
      .updateIn(['items'],[]);

应该是

state.set('items', Immutable.List())

您已分配到简单Array的属性,但显然没有.toJS()方法

同样update / updateIn方法将函数作为第二个参数。