gpt4 book ai didi

javascript - 无法使用本地存储设置变量

转载 作者:行者123 更新时间:2023-12-01 02:25:00 25 4
gpt4 key购买 nike

enter image description here我使用 localstorage 来存储和访问我的函数中的数据,但只有一个变量是存储和可读的,另一个是存储的,但我不知道为什么我可以存储它(当我重新加载页面时它正在工作)。我在 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.setItem 之后的本地存储

最佳答案

似乎存在时间问题。

如果对属性 undefined object 进行 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");  

关于javascript - 无法使用本地存储设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48887448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com