我已经阅读了一些使用redux进行反应原生导航方法的示例,但大多数仍然依赖于在组件中进行导航,如:
this.props.loginUser().then(this.props.navigation.push('Home"));
其中 this.props.LoginUser()
将发送 LOGGING_IN
和 LOGGED_IN
动作 .
将导航作为app状态的纯函数(在组件外部)处理似乎更简洁 . 即当我的auth reducer更新它状态为 loggedIn: true
时,某些导航'reducer'会发现应用程序应该在主屏幕上然后去那里 . 对于 LOG_OUT
动作也是如此 .
有没有最佳实践来实现这样的目标?在反应导航中,我觉得我正在与框架作斗争来实现类似的东西 .
1 回答
如果您想完全不使用导航器,可以使用的一个选项是让减速器跟踪您所在的页面,然后根据减速器中的导航状态对页面进行条件渲染 . 但是,如果这样做,您将无法访问导航栏的细节,并让导航器为您跟踪页面堆栈 . 因此,如果您想使用允许您作为常见用例在逻辑流程中向前和向后导航的页面,我建议您坚持使用当前范例 .