React-Navigation + React-Redux:如何为导航器连接全局容器

时间:2019-05-27 19:29:12

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

我正在构建一个具有SwitchNavigator之间定义的身份验证流程的React-Native + Redux + React-Navigation应用程序:

const UnauthStack = createStackNavigator({
  SignIn: SignInScreen, SignUp: SignUpScreen
}, { initialRouteName: 'SignIn' })

const AuthStack = createBottomTabNavigator({
  Home: HomeScreen, Profile: ProfileScreen
}, { initialRouteName: 'Home' }) 

export default createAppContainer(createSwitchNavigator({
  AuthLoading: AuthLoadingScreen,
  Unauth: UnauthStack,
  Auth: AuthStack
}, { initialRouteName: 'AuthLoading' }))

它只是在查找访问令牌时显示身份验证加载屏幕:如果用户存储了令牌,则导航到Auth堆栈,否则导航到Unauth堆栈。

用户使用存储的(承载)令牌向Auth堆栈内的API发送授权请求,并且在某些时候该令牌将不再有效。那一刻,我想强迫用户进行登录。

在我的redux 商店中跟踪上次响应状态:

{
  lastResponseStatus: 200,
  oauth: { ... },
  entities: { ... },
}

问题:

SignInScreen收到lastResponseStatus时,如何以编程方式导航用户到401(未认证堆栈)?

  

我正在考虑连接到Auth导航器的全局容器,该容器会将状态映射到props之前的其他屏幕。

0 个答案:

没有答案