Redux:将来自多个json文件的数据合并为一个状态

时间:2017-03-08 22:46:01

标签: json dictionary redux store

我是redux的新手,并试图将初始状态映射到三个不同的json文件存储。应用程序中的组件使用来自不同文件的位,但据我所知,存储需要一个单一的状态来传递给组件。

这样做的正确方法是什么?

import data1 from './data1.json'
import data2 from './data2.json'
import data3 from './data3.json'
import storeFactory from './store'

const initialState = (localStorage["redux-store"]) ?
    JSON.parse(localStorage["redux-store"]) :
    data1 + data2 + data3

const store = storeFactory(initialState)
console.log(store.getState())
store.subscribe(saveState)

1 个答案:

答案 0 :(得分:1)

假设每个JSON的根都是一个对象,我会使用_.extend()中的lodash函数来做这种事情:

import data1 from './data1.json'
import data2 from './data2.json'
import data3 from './data3.json'
combined = _.extend({},
    data1,
    data2,
    data3
)

然后你可以按照惯例将该对象传递给redux。

编辑:基于注释,如果每个JSON对象的结构都像

{
    data: [{
        key1: "value1",
        key2: "value2",
        ...
    }]
}

然后你必须像这样组合它们:

combined = _.extend({},
    data1.data[0],
    data2.data[0],
    data3.data[0]
)

假设每个data数组中确实只有一个项目。