将来自 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
如何将 AsyncStorage 应用于 React Native 应用程序以在 TextInput 和 Picker 上存储数据