2017-03-08 98 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

相關問題