加载数组数据初始化 immutable.js

loading array data init immutable.js

我正在将数组数据加载到我的 reducer 中,这就是我目前的处理方式,它正在运行,是否有更好的更详细的方法来实现这一点? 我已经浏览过文档,但它们似乎是某种奇怪的象形文字形式

action.data = [{key: "value"},{key: "value2"}]
// ...

const initialState = Immutable.Map({
  loading: false,
  data: Immutable.List([]),
})

    case RECEIVE_DATA:
      return state 
        .set('data', Immutable.List(action.data.map(item => Immutable.Map(item))))

为什么使用Immutable.List.of

action.data = [{key: "value"},{key: "value2"}]
// ...

const initialState = Immutable.Map({
  loading: false,
  data: Immutable.List([]),
})

    case RECEIVE_DATA:
      return state 
        .set('data', Immutable.List.of(action.data))

您可能会发现 fromJS() 函数更简单:

fromJS() deeply converts plain JS objects and arrays to Immutable Maps and Lists.

示例:

action.data = [{key: "value"},{key: "value2"}]
// ...

const initialState = Immutable.fromJS({
  loading: false,
  data: [],
})

// ...
    case RECEIVE_DATA:
      return state.set('data', Immutable.fromJS(action.data))