React + Redux为我的react-native应用程序设置。处理连接的正确方法是什么?

时间:2016-10-12 06:53:04

标签: react-native redux react-redux jsx react-native-router-flux

我正在使用react-native-router-flux库构建一个简单的react-native应用程序。

我只有3个场景:

  • 主页
  • 搜索
  • 收藏夹

我已在const url='/blog' this.http.get(url, xx) .subscribe(e=>{ console.log(e); } } 中将其定义为:

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

我的问题是我是否应该将每个组件(主页,搜索,收藏夹)连接到商店,或者我是否应该在我的App(app.js)组件中执行此操作并将操作和状态作为道具传递到每个场景成分

我有以下行动:

  • getRecent()
  • searchByKeywords(关键字)
  • searchByCategory(的categoryId)
  • 添加addToFavorites(PHOTOID)
  • removeFromFavorites(PHOTOID)

以下减速机:

  • photoResults
  • 收藏夹

请告诉我在这里设置的最佳方式。我应该连接到每个组件中的状态和操作,还是在App组件级别(定义了路由器场景的位置)执行一次并向下传递。

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

2 个答案:

答案 0 :(得分:0)

我一直在使用的方法是将应用程序拆分为智能和愚蠢的组件,如Dan Abramov解释here。然后我使用richTextBox1.AppendText(comboBox1.Text); 将状态提供给智能组件,并将支持传递给愚蠢的组件。

这使您可以在许多地方重复使用哑组件,因为它们与特定状态无关。

答案 1 :(得分:0)

  

我应该连接到每个组件中的状态和操作,还是在App组件级别(定义了路由器场景)执行一次并向下传递。

最佳做法是在组件级别调用操作。使商店全球可访问。您需要做的就是从组件中调用操作。这对于确保应用程序的模块化非常重要。