我正在使用 react-native-router-flux 库构建一个简单的 react-native 应用程序。
我只有3个场景:
- 家
- 搜索
- 收藏夹
我在我app.js
的原样中定义了它们:
<Router>
<Scene key="root">
<Scene
key="home"
component={Home}
/>
<Scene
key="search"
component={Search}
/>
<Scene
key="favorites"
component={Favorites}
/>
</Scene>
</Router>
在我的setup.js
中,我有以下内容:
<Provider store={store}>
<App />
</Provider>
我的问题是我是否应该将每个组件(主页、搜索、收藏夹)连接到商店,或者我是否应该在我的应用程序 (app.js) 组件中这样做并将动作和状态作为道具传递给每个场景组件。
我有以下行动:
- 获取最近()
- searchByKeywords(关键词)
- searchByCategory(categoryId)
- addToFavorites(photoId)
- removeFromFavorites(photoId)
以及以下减速器:
- 照片结果
- 最爱
请让我知道在这里设置的最佳方式。我应该连接到每个组件中的状态和操作,还是在 App 组件级别(定义路由器场景的位置)执行一次并向下传递。
function mapStateToProps(state) {
return {
photoResults: state.photoResults,
favorites: state.favorites
};
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(actionCreators, dispatch)
};
}