首页 > 解决方案 > 无法在本机反应中使用 AsyncStorage 保存用户名

问题描述

我无法在我的应用程序中使用 AsyncStorage 保存用户名。

我正在使用 Switch 组件,如果值为 true,则保存用户名并在注销时用户名应保留。

AsyncStorage 返回未定义

// 用户切换是否保存用户名的函数

         toggleRememberMe = value => {
        this.setState({ rememberMe: value })
          if (value === true) {
        //user wants to be remembered.
          this.rememberUser();
        } else {
          this.forgetUser();
        }
      }




  // function to save username
      rememberUser = async () => {
        try {
          await AsyncStorage.setItem('user_userID', this.state.signInEmail);
        } catch (error) {
          console.log(error)
        }
        };

// function to get username
        getRememberedUser = async () => {
          try {
            const username = await AsyncStorage.getItem('user_userID');
            if (username !== null) {
              return username;
            }
          } catch (error) {
            console.log(error)
          }
          };




  // function to forget username or remove
          forgetUser = async () => {
            try {
              await AsyncStorage.removeItem('user_userID');
            } catch (error) {
             console.log(error)
            }
          };



 // componentDidMount


 async componentDidMount() {
        const username = await this.getRememberedUser();
        console.log(username)
        this.setState({ 
          signInEmail: username || "", 
           rememberMe: username ? true : false });
        }



 //render

      <Switch
                 trackColor={{true: '#16752A'}}
                  value={this.state.rememberMe}
                  onValueChange={(value) => this.toggleRememberMe(value)}
                />
              <Text>Remember Me</Text>

我该如何解决这个问题?

标签: javascriptreactjsreact-nativereact-native-androidasyncstorage

解决方案


推荐阅读