Javascript React Native AsyncStorage setItem不工作?
我有一个关于异步存储的问题Javascript React Native AsyncStorage setItem不工作?,javascript,react-native,asyncstorage,Javascript,React Native,Asyncstorage,我有一个关于异步存储的问题 console.log(this.state.UserEmail); AsyncStorage.setItem('email', JSON.stringify(this.state.UserEmail)); 控制台日志可以很好地记录用户的电子邮件,但由于某些原因,当我尝试这样做时 AsyncStorage.getItem("email").then((res) => { this.setState({username: res })}); 项目名为“emai
console.log(this.state.UserEmail);
AsyncStorage.setItem('email', JSON.stringify(this.state.UserEmail));
控制台日志可以很好地记录用户的电子邮件,但由于某些原因,当我尝试这样做时
AsyncStorage.getItem("email").then((res) => { this.setState({username: res })});
项目名为“email”的AsyncStorage似乎为空。因为如果i console.log this.state.username,它不会返回任何内容
提前感谢,
马里奥//看看
state = {
UserEmail: 'abcd@gmail.com'
}
async setValue() {
await AsyncStorage.setItem('email', JSON.stringify(this.state.UserEmail));
}
async getValue() {
try {
const value = await AsyncStorage.getItem('email');
if (value !== null) {
// We have data!!
console.log(value);
}
} catch (error) {
// Error retrieving data
}
}
//看看
state = {
UserEmail: 'abcd@gmail.com'
}
async setValue() {
await AsyncStorage.setItem('email', JSON.stringify(this.state.UserEmail));
}
async getValue() {
try {
const value = await AsyncStorage.getItem('email');
if (value !== null) {
// We have data!!
console.log(value);
}
} catch (error) {
// Error retrieving data
}
}
致:
在执行设置状态之前,应等待响应数据
致:
在执行setState之前应等待响应数据您是否在
setItem
之后立即调用getItem
setItem
是一个异步函数,因此它可能不会立即完成。否。我把它称为应用程序中的一部分。可能是因为我正在导航到另一个视图?我不这么认为,但我不确定.AsyncStorage.getItem(“email”).then(async(res)=>{const val=await res;this.setState({username:JSON.parse(val)})<代码>AsyncStorage.getItem('email')。然后(async(res)=>{const val=wait res;this.setState({username:JSON.parse(val)})});console.log(this.props.navigation.state.params.id+“”+this.state.typing+“”+this.state.username)params.id起作用,this.state.typing起作用,但是this.state.username不起作用:/您的项目版本是什么?是否在setItem
之后立即调用getItem
setItem
是一个异步函数,因此它可能不会立即完成。否。我把它称为应用程序中的一部分。可能是因为我正在导航到另一个视图?我不这么认为,但我不确定.AsyncStorage.getItem(“email”).then(async(res)=>{const val=await res;this.setState({username:JSON.parse(val)})<代码>AsyncStorage.getItem('email')。然后(async(res)=>{const val=wait res;this.setState({username:JSON.parse(val)})});console.log(this.props.navigation.state.params.id+“”+this.state.typing+“”+this.state.username)params.id可以工作,this.state.typing可以工作,但是this.state.username不能工作:/what's your project version?OK。。val确实是我需要的数据。现在的问题是,由于某种原因,设置状态似乎不起作用。我不能使用console.log(this.state.username)代码>@batuhan你能编辑你的答案为未来的读者提供更多的背景吗?我不明白。您可以使用cb:this.setState({username:val},()=>console.log(this.state.username));在setItem中也使用toString:AsyncStorage.setItem('email',this.state.UserEmail.toString());如果不是json..好的。。val确实是我需要的数据。现在的问题是,由于某种原因,设置状态似乎不起作用。我不能使用console.log(this.state.username)代码>@batuhan你能编辑你的答案为未来的读者提供更多的背景吗?我不明白。您可以使用cb:this.setState({username:val},()=>console.log(this.state.username));在setItem中也使用toString:AsyncStorage.setItem('email',this.state.UserEmail.toString());如果不是json..我已经尝试过了,它对我有效。你能展示你的部分代码吗?我已经试过了,它对我有用。你能展示你的部分代码吗?
AsyncStorage.getItem("email").then(async (res) => {
const val = await res;
this.setState({username: val })
});