加载数组数据init immutable.js

时间:2016-05-07 19:27:34

标签: javascript reactjs redux 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))))

2 个答案:

答案 0 :(得分:1)

您可能会发现fromJS()功能更容易:

  

fromJS()将普通的JS对象和数组深深地转换为Immutable Maps   和列表。

示例:

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

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

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

答案 1 :(得分:0)

为什么使用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))