Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Native AsyncStorage setItem不工作?_Javascript_React Native_Asyncstorage - Fatal编程技术网

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 })
});