javascript - 使用 ImmutableJs 清空数组

标签 javascript arrays redux immutable.js

我正在使用 ImmutableJSReduxredux-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

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

最佳答案

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

应该是

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

你已经分配给属性简单 Array 显然没有 .toJS() 方法

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

关于javascript - 使用 ImmutableJs 清空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39320997/

相关文章:

mysql - 如何仅显示表中特定数量的数据

javascript - MapStateToProps 到同步上下文中的组件状态

javascript - 导航 ('/' ) 不导航

javascript - 使用 JavaScript 调用 WebService

JavaScript 数组反射

javascript - 检查给定时刻是否在同一周内,而不是一组日期字符串中的至少一个日期字符串

typescript - React-Redux useSelector typescript 类型的状态

javascript - 我想在 JavaScript 中验证我的必填字段不为空

.net - 如何从代码触发 Google Analytics?

Javascript 在运行时注入(inject) html css 高度不拉伸(stretch)