【发布时间】:2022-01-17 07:51:40
【问题描述】:
我一直在尝试寻找资源/代码来帮助我,但我遇到了困难。如果他们登录到异步存储,我目前会保存用户身份验证令牌。在加载应用程序的 App.js 中,我调用 Async Storage.getItem() ,如果令牌不为空,我希望它们转到主屏幕,但如果为空,则转到我的欢迎屏幕。我无法设置导航器方面。
App.js
import Navigator from "./homeStack";
export default function App() {
const [isLogedin, setIsLogedin] = useState(false);
const readData = async () => {
try {
let token = await AsyncStorage.getItem("token");
if (token != null) {
setIsLogedin(true);
//Navigate to the home screen
}
} catch (e) {
console.log("read data error" + e);
}
};
useEffect(() => {
readData();
}, []);
return <Navigator />;
}
导航器组件
const screens = {
welcome: {
screen: welcome,
navigationOptions: {
headerShown: false,
},
},
HomeScreen: {
screen: homeScreen,
navigationOptions: {
headerShown: false,
},
},
};
const homeStack = createStackNavigator(screens);
export default createAppContainer(homeStack);
我缺少什么/如何修复我的代码?默认情况下,它以欢迎屏幕启动,但如果用户已经登录,则转到主屏幕。
【问题讨论】:
-
看不到您是如何保存会话值的。但是您可以比较 here 中的异步存储代码
标签: react-native expo react-navigation asyncstorage