2016-05-15 9 views
2

私はreact-native-router-fluxを使用して、アプリケーション内のナビゲーションを管理しています。私はシーンごとにストアを作成する必要がありますか、私は一つだけ作成する必要があるかどうかを知りたいと思ったシーン/ルートごとに店舗を持つ必要がありますか?

今、それはこのようになります(とどのようにを?):

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

店舗は1店舗しかありませんが、リデューサーは分かれています。

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

関連する問題