Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应本机&;Redux每个场景/路线我应该有一个商店吗?_Javascript_Reactjs_React Native_Redux - Fatal编程技术网

Javascript 反应本机&;Redux每个场景/路线我应该有一个商店吗?

Javascript 反应本机&;Redux每个场景/路线我应该有一个商店吗?,javascript,reactjs,react-native,redux,Javascript,Reactjs,React Native,Redux,我正在使用react native router flux管理应用程序中的导航。我想知道是应该为每个场景创建一个存储,还是应该只创建一个(以及如何创建?) 现在看起来是这样的: App.js <Router> <Scene key="root"> <Scene key="mainScene" component={MainScene} title="MainScene" initial={true} /> <Scene

我正在使用
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>
 <Provider store={store}>
     <MainConnectedComponent/>
 </Provider>
 <Provider store={store}>
     <SecondConnectedComponent/>
 </Provider>

mainsecene.js

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

SecondScene.js

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


我在某个地方读到redux只喜欢一个应用商店,但我不知道如何通过这种将应用程序分为不同部分的导航实现这一点。

您只使用一个应用商店,但您将简化程序分开

import { createStore, combineReducers } from 'redux';

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

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

const store = createStore(
    combineReducers({
        mainSceneReducer,
        secondSceneReducer
    });
);
更新:现在关于路由器,您可以将提供商放在主路由器周围,并将其从mainsecene.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问题:

您能告诉我这是如何与导航一起工作的吗?我应该把提供者放在那里吗?