如何在React-Native中使用AsyncStorage

时间:2019-06-19 15:19:04

标签: javascript react-native

我正在React-Native中创建一个Android应用。

这是我的问题:

我基本上有5个页面来管理用户:

1)身份验证(在其中可以进入登录名或注册)

2)登录页面

3)注册页面。在此页面中,我设置了值,然后将它们传递到userPage。

4)用户页面。在此页面中,我可以进行注册。

5)HomepageUser

在“用户”页面中,我具有2个功能:

  

AsyncStorage.setItem

     

AsyncStorage.getItem

static async saveLoggedInUser(value) {
    try {
      await AsyncStorage.setItem("@loggedInUser", JSON.stringify(value));
    } catch (error) {
      console.log(error.message);
    }
  }

  static async getUserLoggedIn() {
    try {
      return await AsyncStorage.getItem("@loggedInUser");
    } catch (error) {
      console.log(error.message);
      return null;
    }
  }

现在,我的第一页是身份验证,如何检查用户是否已通过身份验证,然后将其定向到HomepageUser?

非常感谢您!

1 个答案:

答案 0 :(得分:0)

成功登录后,您需要在“登录”页面中设置用户令牌,

try {
    await AsyncStorage.setItem('token', usertoken);
  } catch (error) {
    // Error saving data
  }

在第一页的componentDidMount方法中,您需要检查是否设置了用户令牌,

componentDidMount = async() =>{
  try {
    const value = await AsyncStorage.getItem('token');
    if (value !== null) {
      // We have data!!
      console.log(value);
    }
  } catch (error) {
    // Error retrieving data
  }

}

如果令牌存在,请导航到“主页”或重定向到“登录”页面。

关于使用React导航进行身份验证的文档非常出色。您可以检查是否使用React导航进行路由。

https://reactnavigation.org/docs/en/auth-flow.html