Reactjs 在异步存储上保存输入数据

Reactjs 在异步存储上保存输入数据,reactjs,react-native,Reactjs,React Native,我一直试图将输入数据保存在异步存储上,但每当我在输入后返回时,它都会显示以前的数据,而不是更新的数据。以下是我认为需要进行一些更改的代码 构造函数(道具){ 超级(道具) 此.state={ 用户数据:{ 地址:'' } } } saveAddressEdit=(字段名、字段值)=>{ AsyncStorage.setItem(userData.address,fieldValue) } render(){ const{address}=this.state.userData 返回( this

我一直试图将输入数据保存在异步存储上,但每当我在输入后返回时,它都会显示以前的数据,而不是更新的数据。以下是我认为需要进行一些更改的代码

构造函数(道具){
超级(道具)
此.state={
用户数据:{
地址:''
}
}
}
saveAddressEdit=(字段名、字段值)=>{
AsyncStorage.setItem(userData.address,fieldValue)
}
render(){
const{address}=this.state.userData
返回(
this.setState({address})
值={address}/>
this.saveAddressEdit('address',address)}style={{{backgroundColor:'#ff0000'}}>
);
}

如果您想使用AsyncStorage在组件生命周期中保持您的地址,那么您应该首先正确保存它,一旦回到屏幕上,获取它并将其填充回您的状态,因为需要使用AsyncStorage重新初始化组件的状态

以下代码应有助于将地址初始化回存储的地址:

componentDidMount () {
   AsyncStorage.getItem('address').then(value => {
      if (value) {
         this.setState({address: value});
      }
   })
}
下面指定了将数据设置为异步存储的正确方法:

 saveAddressEdit = async (fieldName, fieldValue) => {
    await AsyncStorage.setItem(fieldName, fieldValue)
 }
或者你也可以像我在上面的
getItem
中那样使用promise方法,比如
setItem(fieldName,fieldValue)。然后(value=>console.log('saved'))
,但是因为我们不需要在
中处理任何事情,所以我拒绝在这些地方使用promise


希望这有帮助。快乐编码:)

您能更具体地描述您想要实现的输出吗?不清楚你想要实现什么。