2017-03-08 94 views
0

我是新来的redux并尝试映射初始状态以存储来自三个不同的json文件。应用程序中的组件使用来自不同文件的位,但据我所知,存储需要一个单一的状态传递给组件。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

假设每个JSON的根是一个对象,我会使用_.extend()功能从lodash对于这种事情:

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

然后你就可以通过该对象到终极版按往常一样。

编辑:根据意见,如果每个JSON对象的构成就像

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

,那么你就必须给他们这样的组合:

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

假设,真的有只每个data的阵列中有一个项目。

+0

每个都是这样的:{“data”:[{“key”:“value”,“key”:10}]} ...所以我得到一个'预加载状态'中找到的'unexpected key'数据错误。我该如何解决这个问题? –

+0

根据您的评论更新 – Julien

相关问题