使用redux管理导航状态有什么好处?

时间:2019-10-03 23:04:28

标签: react-native redux react-redux react-navigation

例如,如果您使用的是导航库(例如react-navigation),那么如果react-navigation已经管理了redux来管理 navigation状态,那么要解决此麻烦是什么呢? ?似乎必然会使设置复杂化。

例如,浏览屏幕看起来更痛苦:

navigate = () => {
  const navigateScreens = NavigationActions.navigate({
    routeName: "OtherScreen",
    params: {someProperty: "someValue"}
  })
  this.props.navigation.dispatch(navigateScreens);
}:

不仅是反应导航:

this.props.navigation.navigate("OtherScreen")

ReactNavigation文档专门说:“我也可以将导航状态存储在Redux中吗?这在技术上是可行的,但是我们不建议这样做-用脚射击,放慢速度/破坏应用程序太容易了。我们鼓励您将其留给React Navigation来管理导航状态。”

所以进行所有这些额外工作一定会带来巨大的好处...对吗? Redux管理导航状态的一些实际用例/场景是什么,值得进行权衡并忽略react-nav文档?

2 个答案:

答案 0 :(得分:2)

仅靠管理路由可能不值得实现。如果您有大量全局数据和大型组件树,则Redux设置非常值得。但是,如果您只想管理一个或什至几个数据点,则最好采用一种更简单的手动将道具穿过树的策略。

答案 1 :(得分:0)

除了维护历史记录或将导航状态存储在redux中的返回按钮android功能外,其他操作都不好!

如果您想了解用户去过的屏幕以及发生屏幕导航的屏幕,则可以使用redux nav状态。