【发布时间】:2022-01-12 20:09:55
【问题描述】:
有没有办法检查本地存储中的变量?
Storage {user: 'undefined', new: '{"_id":"61dd228336a3923d2286b994","email":"ahmadsa…","updatedAt":"2022-01-11T06:24:03.675Z","__v":0}', lscache-localhost:preview:v20180702-cacheexpiration: '27376332', lscache-localhost:preview:v20180702: '{}', length: 4}
有时数据可能基于用户登录的用户属性。下面是返回用户属性的登录
Storage {user: '{"team_members":{"memberFullname1":"memberFullname…","updatedAt":"2022-01-10T01:43:30.288Z","__v":0}', new: 'null', length: 2}
如何创建条件来检查两个属性并仅返回包含值的属性?
基于用户登录,我只能使用一个新变量或用户变量。在从 localStorage 渲染我的数据之前,我是否可以检查两个条件?
这是我尝试的方法。但它只检查第一个条件,即使存在第二个条件,它也会返回。 Json.parse() 中未捕获的错误
if (typeof Storage !== "undefined") {
if (localStorage.getItem("new")) {
setUser(JSON.parse(window.localStorage.getItem("new")));
} else if (localStorage.getItem("user")) {
setUser(JSON.parse(window.localStorage.getItem("user")));
}
return;
}
有没有办法检查这两个条件?你的时间真的很感激。请问我是兄弟需要.. 最后,我怎样才能防止重新渲染状态
【问题讨论】:
-
您的 Json 格式是否正确?由于您在第一个
JSON.parse()上遇到错误 -
是的。问题来自 localstorage.getItem("new") 如果新用户存在(数据)来自服务器并且我调用 JSON.parse(localstorage.get("new") 那么我的数据检索成功。但是有有时数据可能不在“新”上,它将在“用户”上。基于那里登录...这就是为什么我想在渲染之前检查。
标签: javascript reactjs react-hooks local-storage jsonparser