Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步存储&;抽屉呈现始终为空_Javascript_React Native_Asyncstorage - Fatal编程技术网

Javascript 异步存储&;抽屉呈现始终为空

Javascript 异步存储&;抽屉呈现始终为空,javascript,react-native,asyncstorage,Javascript,React Native,Asyncstorage,我有一个带有“记住我”按钮的登录屏幕,当我连接时,我希望将此信息存储在AsynStorage中,如下所示: if (this.isFormValid()) { AccountService.login(login, password) .promise.then(body => { console.log('onLoginClick -> body', body) Keyboard.dismiss()

我有一个带有“记住我”按钮的登录屏幕,当我连接时,我希望将此信息存储在AsynStorage中,如下所示:

    if (this.isFormValid()) {
      AccountService.login(login, password)
        .promise.then(body => {
          console.log('onLoginClick -> body', body)
          Keyboard.dismiss()
          AsyncStorage.setItem('login', login)
          if (this.state.isRememberMeSelected) {
            console.log("i'm in the storage !")

            AsyncStorage.multiSet([['login', login], ['password', 
              password], ['isRememberMeSelected', '1']])
          } else {
            AsyncStorage.multiSet([['login', ''][('password', '')], 
            ['isRememberMeSelected', '0']])
          }
当我返回抽屉时,我尝试读取存储并获取我的值“IsReMemberMessage”:

在me抽屉中,我检查值“IsremembermSelected”以删除某些项目:

  StorageMultiRemove = async () => {
       try {
         await AsyncStorage.multiRemove(['refreshToken', 
         'stripeCustomerId', 'token'], err => {
           console.log(' Dans multiRemove Error', err)
         })
       } catch (error) {
         // Error saving data
       }
     }

当我回到抽屉时,这个值总是空的,除非我离开应用程序并重新启动。。。那里一切都安排得很好

我很适合我的状态(在做我的设置项目之前的状态)


我想将这些数据记录在AsynStore中,返回到我的抽屉并获取这些值​​可用

您可以添加一个变量,该变量将在获取异步存储时更改

class Myform extends React.Component {
  state = {
    loading: true
}
然后在组件中安装并更新状态

 componentDidMount() {
    await AsyncStorage.getItem('isRememberMeSelected').then(value => {
      console.log('DrawerIsRememberMeSelected', value)
      this.setState({
        isRememberMeSelected: value,
        loading: false
       })
    })
  }
在渲染中

render() {
   if(loading) return;  // could return loading spinner or something
} 
 componentDidMount() {
    await AsyncStorage.getItem('isRememberMeSelected').then(value => {
      console.log('DrawerIsRememberMeSelected', value)
      this.setState({
        isRememberMeSelected: value,
        loading: false
       })
    })
  }
render() {
   if(loading) return;  // could return loading spinner or something
}