Reputation: 2563
I try to save my Username and Password in cache. I couldnt save two data so I try to save just username below code.
but when I enter letter to TextInput, data goes to
savedata()
but here, this.setState doesnt work I dont know why. Because when render page,
console.log("mykey : ", this.state.mykey );
gives me empty object
here is code
<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>
here is my methods
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();
}
Also how can I save two value which are username and password ?
Upvotes: 1
Views: 2763
Reputation: 10526
You could try to store json as string and later parse json during get
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)
}
})
}
Upvotes: 2
Reputation: 790
AsyncStorage.setItem
and this.setState
are async funtion, so your console.log() will not be work as you wish. To console you can try
savedata = async (value) => {
try {
await AsyncStorage.setItem("myKey", value);
this.setState({myKey: value}, () => {
console.log("deneme",value);
})
} catch (error) {
console.log('Store error');
}
}
Upvotes: 1