将来自 AsyncStorage 的数据放入 Text

Posted

技术标签:

【中文标题】将来自 AsyncStorage 的数据放入 Text【英文标题】:Put data from AsyncStorage in Text 【发布时间】:2021-11-22 09:40:53 【问题描述】:

我已使用 AsyncStorage 将数据存储在本地主机中,并且运行良好。我可以alert 和离线登录,但是当我转到另一个页面时,我可以做alert,但我不能把它放在Text 中。我尝试了一些方法,但没有奏效。

onSumbit = async () => 
  try
    await AsyncStorage.setItem('UserEmail',this.state.UserEmail)
  catch (err)
    console.log(err)
  


getData = async () => 
  try 
    const UserEmail = await AsyncStorage.getItem('UserEmail')
    if(UserEmail !== null) 
      this.setState( UserEmail );
      console.log(UserEmail);
    
   catch(e) 
    //Error reading value
  


<Text style=styles.FormText>this.state.UserEmail</Text>
<TextInput
  placeholder="Enter User Email"
  value=this.state.UserEmail
  onChangeText=(UserEmail) => this.setState(UserEmail)
  underlineColorandroid='transparent'
  style=styles.TextInputStyleClass />
  //This code is working

displayData = async ()=> 
  try  
    let user = await AsyncStorage.getItem('UserEmail');  
    alert(user);
  catch(error)
    alert(error)  
    




/// in home page (another page )
render() 
  return (  
    <TouchableOpacity onPress =this.displayData>  
    <Text>Click to display data</Text>  
    </TouchableOpacity> 
  );
    
//This is work too, but in the Text it's not working

【问题讨论】:

【参考方案1】:

可以使用JSON.parse()将AsyncStorage数据String转成JSON格式

这是你的代码:

let user = await AsyncStorage.getItem('UserEmail');  
alert(user);

这就是你需要做的:

let user = await AsyncStorage.getItem('UserEmail');  
alert(JSON.parse(user));

【讨论】:

感谢您的帮助,但我想将其显示为用户名的文本?不提醒,提醒对我有用,但我想在 ui 中打印数据

以上是关于将来自 AsyncStorage 的数据放入 Text的主要内容,如果未能解决你的问题,请参考以下文章

React Native 如何将 AsyncStorage 数据发送到 MongoDB 数据库?

如何在本机代码(Java、ObjectiveC/Swift)中读取 AsyncStorage

来自 Json 的 Jquery 自动完成值

如何将 AsyncStorage 应用于 React Native 应用程序以在 TextInput 和 Picker 上存储数据

将来自多个表的查询数据放入 html 表中

从 useState 中的异步函数获取值