正在从localStorage检查两个条件变量:



是否有方法检查本地存储中的变量?

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}

如何创建条件来检查两个属性并只返回包含值的属性?

基于用户登录,我只能使用一个变量new或user。在从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;
}

有没有办法检查这两种情况?非常感谢您抽出时间。求你了,我是一个需要。。最后,我如何防止状态的重新呈现

如果user未定义,执行new,如果未定义,则执行{},解析。

if (typeof Storage !== "undefined") {
setUser(JSON.parse(localStorage.user || localStorage.new || '{}'));
}

不过,如果你看一下new,它与user在结构上不同,所以你可能想解决这个问题,否则它们就不一样了。

我发现这些代码允许我检查这两个条件,并且它没有像前一个那样返回错误。

useEffect(() => {
const fetchStates = async () => {
const result = await axios(
"https://nigerian-states-info.herokuapp.com/api/v1/states"
);
setStates(result.data.data);
};
fetchStates();
if (localStorage.user === "undefined") {
return setUser(JSON.parse(localStorage.getItem("new")));
} else if (localStorage.new === "undefined") {
return setUser(JSON.parse(localStorage.getItem("user")));
}
}, [formData, user]);

经过一系列的尝试和错误,我终于到达了那个部分。我想向所有花时间回顾我的问题的人,即使是那些没有得到回答的人,致以诚挚的感谢。我非常感谢你,尤其是劳伦斯·切隆,你的想法对我的思想形成有很大帮助。感谢所有

最新更新