Javascript 异步存储&;抽屉呈现始终为空
我有一个带有“记住我”按钮的登录屏幕,当我连接时,我希望将此信息存储在AsynStorage中,如下所示: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()
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
}