![](/img/trans.png)
[英]sessionStorage and localStorage appearently resets when I refresh the page
[英]How can I persist localstorage when ComponentDidMount resets the value on refresh?
从列表中获取并将其设置为零时,我将一个项目附加到每个数组项目。 然后在 ComponentDidMount() 中运行该函数。
newsList = (category) => {
fetch(API_URL)
.then((response) => response.json())
.then((response) => {
var news = response.articles;
news = news.map((x) => ({ ...x, likes: 0 }));
this.setState({ general: news }, () => {
localStorage.setItem("general", JSON.stringify(this.state.general));
});
});
};
我随后增加了我附加的“喜欢”值并保存到本地存储。
generalLikeCount = (x) => {
let newArr = [...this.state.general];
newArr[x]["likes"] = parseInt(newArr[x]["likes"]) + 1;
this.setState({ general: newArr }, () => {
localStorage.setItem("general", JSON.stringify(this.state.general));
});
};
但是在每次刷新时,喜欢计数器都会重置为零。 我不知道如何解决这个问题。
如果有人遇到同样的问题,我通过检查本地存储中是否存在该值并使用该值来解决此问题,或者如果它不存在则对其进行初始化。
像这样:
if(JSON.parse(localStorage.getItem(category)) !== null || undefined ) {
news = JSON.parse(localStorage.getItem(category));
} else {
news = news.map((x) => ({ ...x, likes: 0 }));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.