我将我的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()
函数,但我不知道如何...