2016-05-15 33 views
2

我正在使用react-native-router-flux來管理我的應用中的導航。我想知道我是否應該爲每個場景中的商店或者我應該只創建一個React Native&Redux應該每場景/路線都有商店嗎?

現在它看起來像這樣(以及如何):

App.js

<Router> 
    <Scene key="root"> 
     <Scene key="mainScene" component={MainScene} title="MainScene" initial={true} /> 
     <Scene key="secondScene" component={SecondScene} title="SecondScene" /> 
    </Scene> 
</Router> 

MainScene.js

<Provider store={store}> 
    <MainConnectedComponent/> 
</Provider> 

SecondScene.js

<Provider store={store}> 
    <SecondConnectedComponent/> 
</Provider> 

我讀的地方,喜歡Redux的只有一家門店,但我不知道如何做到這一點用這種導航的分開的應用程序不同的部分。

回答

3

您只使用一個商店,但您分開減速器。

import { createStore, combineReducers } from 'redux'; 

const mainSceneReducer = (state, action) => { 
    ... 
}; 

const secondSceneReducer = (state, action) => { 
    ... 
}; 

const store = createStore(
    combineReducers({ 
     mainSceneReducer, 
     secondSceneReducer 
    }); 
); 

更新:現在關於路由器,你會把你的供應商在你的主路由器,並從mainScene.js和secondScene.js其刪除:

<Provider store={store}> 
<Router> 
    <Scene key="root"> 
     <Scene key="mainScene" component={MainScene} title="MainScene" initial={true} /> 
     <Scene key="secondScene" component={SecondScene} title="SecondScene" /> 
    </Scene> 
</Router> 
</Provider> 

相關SO問題:redux-multiple-stores-why-not

+0

你能告訴我這是如何與導航工作?我應該把提供者放在那裏嗎? – funerr

+0

看到我更新的答案。 – hansn

相關問題