我正在学习用React-Native编程,我需要使用Asyncstorage来检查用户是否登录。我在应用程序中使用router-flux进行操作。
我对AsyncStorage的使用有疑问。
所以让我们开始吧!我为用户提供3页。认证页面,登录页面和主页。
第一页是身份验证。我在登录名和注册之间创建了一个白页,并在其中使用AsyncStorage进行控制。
所以我有身份验证->白页->登录名或HomepageUser。
现在的问题是,当我进入登录页面时,执行此过程,然后返回(在应用程序底部或电话底部),我在白页中返回。
class Starting extends Component {
constructor(props) {
super(props);
this.state = {
loading: true
};
}
componentWillMount() {
User.getUserLoggedIn()
.then(UserLoggedIn => {
if (UserLoggedIn !== null) {
global.utente = new Utente(JSON.parse(dataUtenteLoggato));
Actions.homepageutente();
} else {
Actions.login();
}
})
.catch(err => {
console.log(err);
})
.finally(() => {
this.setState({ loading: false });
});
}
render() {
return (
<View style={style.container}>
<ActivityIndicator size="large" color="#64c7c0" />
</View>
在用户
中 static async getUserLoggedIn() {
try {
return await AsyncStorage.getItem("@UserLoggedIn");
} catch (error) {
console.log(error.message);
return null;
}
}
如何避免这种情况? 如果不使用空白页,还有另一种方法可以实现吗? 谢谢