Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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 无法使用localstorage设置变量_Javascript_Reactjs - Fatal编程技术网

Javascript 无法使用localstorage设置变量

Javascript 无法使用localstorage设置变量,javascript,reactjs,Javascript,Reactjs,我在函数中使用localstorage来存储和访问数据,但变量中只有一个是store和readable,另一个是store,但我不知道为什么我可以存储它(当我重新加载页面时,它会工作)。我在chrome的调试面板中看到了我的变量存储 是这样存储我的数据的吗 localStorage.setItem('user', JSON.stringify(user)); //data in json from API var obj = { nom: user.

我在函数中使用localstorage来存储和访问数据,但变量中只有一个是store和readable,另一个是store,但我不知道为什么我可以存储它(当我重新加载页面时,它会工作)。我在chrome的调试面板中看到了我的变量存储

是这样存储我的数据的吗

 localStorage.setItem('user', JSON.stringify(user)); //data in json from API

 var obj = {
                    nom: user.nom,
                    prenom: user.prenom,
                    mail: user.mail,
                    username: user.username,
                    hasNewsletter : user.hasNewsletter,
                    coordonnee: user.coodonnee,
                    id: user.id
                };
  localStorage.setItem('userDatax', JSON.stringify(obj)); // data of an other API
这部分代码在我的主页中

   this.state ={
      nfoUser: JSON.parse(localStorage.getItem('user')),
      userDatax: JSON.parse(localStorage.getItem('userDatax'))
   }
//and i my render

console.log(this.state.userDatax, "user DATA") //NO DATA TILL RELOAD
console.log(this.state.nfoUser, "user vfo") // DATA
有什么想法吗


图中显示了我的localstorage紧跟在localstorage之后。setItem

似乎存在计时问题

如果将属性未定义的对象JSON.stringify,则会得到一个空数组:

var user = {nom: undefined};
console.log(JSON.stringify( user));
日志“{}”

这意味着当localstorage最初设置为从没有或未定义属性值的
user
对象派生的
obj
时,第一个API没有响应。当页面被重新加载时说它工作意味着此时
user
已经更新,
obj
已经更新,
localStorage
已经更新

请注意,控制台上记录的对象可能会显示在调用
console.log
后更新的属性值。确切的影响可能很难预测,但是如果更新本地存储,并单击现有日志条目上的展开箭头,在某些情况下可以看到更新的值

要调试并查看特定时间的本地存储,请在记录之前将其转换为字符串:

console.log( JSON.stringify( localStorage), "debug message");  

似乎有时间问题

如果将属性未定义的对象JSON.stringify,则会得到一个空数组:

var user = {nom: undefined};
console.log(JSON.stringify( user));
日志“{}”

这意味着当localstorage最初设置为从没有或未定义属性值的
user
对象派生的
obj
时,第一个API没有响应。当页面被重新加载时说它工作意味着此时
user
已经更新,
obj
已经更新,
localStorage
已经更新

请注意,控制台上记录的对象可能会显示在调用
console.log
后更新的属性值。确切的影响可能很难预测,但是如果更新本地存储,并单击现有日志条目上的展开箭头,在某些情况下可以看到更新的值

要调试并查看特定时间的本地存储,请在记录之前将其转换为字符串:

console.log( JSON.stringify( localStorage), "debug message");  

如何设置localStorage中的数据?不工作的数据设置为var obj={nom:user.nom,prenom:user.prenom,mail:user.mail,用户名:user.username,hasNewsletter:user.hasNewsletter,Coordonne:user.coodonee,id:user.id};localStorage.setItem('userDatax',JSON.stringify(obj));和另一个localStorage.setItem('user',JSON.stringify(user));从您所展示的内容来看,代码很好。请使用演示问题的示例更新您的问题,最好是可运行的问题。遗憾的是,尽管堆栈片段(
[]
工具栏按钮)支持React,包括JSX(),它们不支持本地存储。因此,在这里发布完整的示例,如果您想要指向实时版本,则必须指向非现场(codepen.io.jsFiddle.net等)。您可能需要显示您在何时何地设置
localStorage
项。我猜您正在异步执行某些操作,但尝试同步读取。使用提供的代码无法判断。您如何在localStorage中设置数据?不工作的设置类似于var obj={nom:user.nom,prenom:user.prenom,mail:user.mail,用户名:user.username,hasNewsletter:user.hasNewsletter,Coordonne:user.coodonee,id:user.id};localStorage.setItem('userDatax',JSON.stringify(obj));和另一个localStorage.setItem('user',JSON.stringify(user));从您所展示的内容来看,代码很好。请使用演示问题的示例更新您的问题,最好是可运行的问题。遗憾的是,尽管堆栈片段(
[]
工具栏按钮)支持React,包括JSX(),它们不支持本地存储。因此,在这里发布完整的示例,如果您想要指向实时版本,则必须指向非现场(codepen.io.jsFiddle.net等)。您可能需要显示何时何地设置
localStorage
项。我猜您正在异步执行某些操作,但尝试同步读取。使用提供的代码无法判断。