React-Native中的AsyncStorage

时间:2019-06-21 07:55:56

标签: javascript react-native

我正在学习用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;
    }
  }

如何避免这种情况? 如果不使用空白页,还有另一种方法可以实现吗? 谢谢

0 个答案:

没有答案