React Navigation 重定向组件中的 redux store 更改

React Navigation redirect on redux store change in component

我正在寻找基于 redux 操作的重定向的良好解决方案,使用 react-navigation

当前场景: 在 App.js 中,我初始化了 redux 存储并在其中呈现 Main.js 组件。 在主要比赛中。我等待 redux-persist 的 rehydrate 完成(稍后每个同步操作也结束)。 如果完成,我会渲染 Navigator comp.. (如果可能的话,我想在这里调用 auth 令牌检查器操作并根据 redux 存储值 (isAuth) 进行重定向。现在我不知道怎么做。)

导航器首先加载 LoginScreen 组件。我在挂载发生之前调用身份验证令牌操作 (cWillMount)。 问题是我无法将重定向代码放在 reudx 存储更改时重新 运行 的方法中(例如:渲染)。

当store变量改变时,我应该把重定向代码放到运行哪里?

如果您还没有,可以尝试将 react-navigation 集成到 Redux。 Official documentation and this article 会有帮助。 在 Redux 中管理所有内容可能是值得的,因为您可以将导航逻辑移至 reducer 和操作中。

对于令牌的情况,我假设您有一个使用 AsyncStorage 存储的令牌。 Here 你可以找到我的示例项目,我只实现了一个 OAth2.0 授权流程。

我使用 'Splash' 屏幕从 AsyncStorage 加载令牌。然后,根据结果,应用程序导航到 'Welcome' 屏幕或 'Main' 屏幕。从 'Welcome' 屏幕,用户可以重定向到进行授权的登录 Web 视图。

我使用 Redux Thunk 来处理副作用。希望我的实现能帮到你。