我正在寻找一个基于redux动作的重定向的好解决方案,使用react-navigation
当前情况: 在App.js中,我初始化了redux存储并在其中呈现Main.js组件。 在主要的comp。我等待redux-persist的rehydrate完成(之后每个同步动作也结束)。 如果它完成了,我渲染Navigator comp .. (如果有可能我想在这里调用auth令牌检查器操作并根据redux存储值重定向(isAuth)。现在我不知道如何。)
导航器首先加载LoginScreen comp。我在挂载发生之前调用auth令牌操作(cWillMount)。 问题是我不能将重定向代码放在一个可以重新运行reudx存储更改的方法中(例如:render)。
当存储变量发生变化时,我应该在哪里放置重定向代码?
答案 0 :(得分:1)
如果您还没有,可以尝试将react-navigation集成到Redux。 Official documentation和this article会有所帮助。 管理Redux中的所有内容可能是值得的,因为您可以将导航逻辑移动到缩减器和操作中。
对于令牌的情况,我假设您使用AsyncStorage存储了令牌。 Here您可以找到我的示例项目,我只实现OAth2.0授权流程。
我使用'Splash'屏幕从AsyncStorage加载令牌。然后,根据结果,应用程序导航到“欢迎”屏幕或“主要”屏幕。在“欢迎”屏幕上,用户可以重定向到授权发生的登录网页视图。
我使用Redux Thunk来处理副作用。我希望我的实施可以帮助你。