使用本机组件响应本机导航5身份验证流

时间:2020-05-18 14:23:07

标签: reactjs react-native authentication navigation

我将我的React本机应用程序从导航版本4迁移到了5。我遇到了一些麻烦,因为整个迁移指南都适用于功能示例,但是我使用类组件。 (而且我对功能代码不太满意)

我快完成了,但是我无法执行身份验证过程。 我尝试遵循以下步骤:https://reactnavigation.org/docs/auth-flow/ 但是我不理解某些部分。

使用reducer有什么意义? :

 const [state, dispatch] = React.useReducer(
   (prevState, action) => {
     switch (action.type) {
       case 'RESTORE_TOKEN':
         return {
           ...prevState,
           userToken: action.token,
           isLoading: false,
         };
       case 'SIGN_IN':
         return {
           ...prevState,
           isSignout: false,
           userToken: action.token,
         };
       case 'SIGN_OUT':
         return {
           ...prevState,
           isSignout: true,
           userToken: null,
         };
     }
   },
   {
     isLoading: true,
     isSignout: false,
     userToken: null,
   }
 );

如果在userToken更改时要刷新导航,为什么不使用useState?

如果我们以前不做await AsyncStorage.getItem('userToken')await AsyncStorage.setItem('userToken', 'dummy-auth-token')有什么意义?

我想在另一个文件(auth.js)中设置userToken 现在我开始: await AsyncStorage.setItem('userToken', 'dummy-auth-token') 在我的auth.js文件中。它可以工作,但是我必须重新加载应用程序才能进行导航,以处理userToken的更改。我该如何正确处理。 基本上,我想从另一个文件调用SignInScreen()函数,但我不知道如何...

0 个答案:

没有答案