如何在缓存中保存用户名和密码?反应本



我尝试将用户名和密码保存在缓存中。我无法保存两个数据,因此我尝试仅保存在代码下方的用户名。

但是,当我输入到文本插图的信时,数据将转到

savedata()

,但是在这里,setstate不起作用,我不知道为什么。因为当渲染页面时,

console.log(" mykey:",this.state.mykey);

给我空对象

这是代码

<View style={styles.ChildViewStyle}>
    <TextInput
        value = {this.state.mykey}
        placeholder= "Kullanıcı Adı"
        placeholderTextColor="#fff"
        onChangeText={(text) =>  this.savedata(text)}
        keyboardType='email-address'
        onSubmitEditing={() => this.passwordInput.focus()}
        style={styles.input}
    />
</View>

这是我的方法

savedata = (value) => {
    AsyncStorage.setItem("myKey", value);
    this.setState({myKey: value});
    console.log("deneme",value);
}
componentDidMount(){
    AsyncStorage.getItem("myKey").then((value) => {
        this.setState({myKey: value});
        console.log("didmounth : ", value)
    }).done();
}

我还可以保存两个值,这些值是用户名和密码?

您可以尝试将json存储为字符串,然后在get

中解析JSON
savedata = (username,password) => {
 let value = {'username' : username, 'password':password}   
 await AsyncStorage.setItem('myKey', JSON.stringify(value));
    this.setState({myKey: value});
    console.log("deneme",value);
} 
constructor(){
    AsyncStorage.getItem("myKey").then((value) => {
         if (value){
         let valueParsed = JSON.parse(value)        
         this.setState({myKey: valueParsed});
         console.log("didmounth : ", valueParsed)
         }    
})
}

AsyncStorage.setItemthis.setState是异步的功能,因此您的console.log()将无法按照您的意愿起作用。要安装您可以尝试

savedata = async (value) => {
  try {
    await AsyncStorage.setItem("myKey", value);
    this.setState({myKey: value}, () => {
      console.log("deneme",value);
    })
  } catch (error) {
    console.log('Store error');
  }
}

相关内容

  • 没有找到相关文章

最新更新