使用ImmutableJ清空数组

Emptying an Array using ImmutableJs

本文关键字:数组 清空 ImmutableJ 使用      更新时间:2023-09-26

我使用的是具有Redux和Redux不可变的ImmutableJS。假设我有一个初始状态,它是一个空的项目数组:

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

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

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

应该是

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

您已经为属性simple Array赋值,该属性显然没有.toJS()方法

此外,update/updateIn方法将函数作为第二个参数