Javascript 页面刷新后未存储本地存储

Javascript 页面刷新后未存储本地存储,javascript,local-storage,Javascript,Local Storage,为了在本地存储中保存一个值,我很难理解我在代码中做错了什么 我有一个相当大的代码项目,所以我将试着总结一下该程序的总体目标。 我从新闻API中提取新闻文章并显示文章;每篇文章(取决于它来自的出版物)将不同的数值推送到数组allSource2。 然后,我取这个数组的和,得到一个“分数”(变量称为sum) 我基本上希望分数被本地存储,这样即使在页面刷新后也可以使用。 我想可能是因为我把localStorage函数放在了哪里而出了问题。目前,我将其放在click事件下,该事件也会在数组中推送数值(当您

为了在本地存储中保存一个值,我很难理解我在代码中做错了什么

我有一个相当大的代码项目,所以我将试着总结一下该程序的总体目标。 我从新闻API中提取新闻文章并显示文章;每篇文章(取决于它来自的出版物)将不同的数值推送到数组
allSource2
。 然后,我取这个数组的和,得到一个“分数”(变量称为
sum

我基本上希望分数被本地存储,这样即使在页面刷新后也可以使用。 我想可能是因为我把
localStorage
函数放在了哪里而出了问题。目前,我将其放在click事件下,该事件也会在数组中推送数值(当您单击文章标题时)。 我对它还能在哪里感到非常困惑,因此每次总和发生变化时,它都会真正更新
sum

此外,它也可以存储它(我在控制台上选中了
localStorage
,刷新后它仍然可以工作,但在刷新并单击另一篇文章后,它会重置为本文的任何值)

我没有把整个代码放进去,因为它太长了。其他一切都很好,就是这样。 而且,所有这些都包含在一个大函数中

我定义
let sum=0在代码的开头。
然后,这是单击事件

document.getElementsByClassName('article-rating')[i]
  .addEventListener('click', function(event) {

    sum = allSource2.reduce((tempSum, val) => tempSum + val);
    console.log("article score is now" + " " + sum);
    var lastname = localStorage.getItem("overallsum");
    localStorage.setItem("overallsum", sum);


 });
我还尝试将
var lastname=localStorage.getItem(“overallsum”)在代码的开头,当第一个函数出现时却没有运气

非常感谢你的帮助!
对于任何格式问题,我深表歉意,我对这一点非常陌生。

每次单击事件时,
总金额将被设置,这就是问题所在。如果
overallsum
是本地存储的一次性存储,则可以检查
overallsum
的值是否为
null
,如果是,则第一次存储该值

例如:

if(localStorage.getItem(“overallsum”)==null){
setItem(“总总和”,总和);

}
每次单击事件,都会设置
总积分,这就是问题所在。如果
overallsum
是本地存储的一次性存储,则可以检查
overallsum
的值是否为
null
,如果是,则第一次存储该值

例如:

if(localStorage.getItem(“overallsum”)==null){
setItem(“总总和”,总和);

}
请记住,localStorage是一个全局对象,因此,如果您有多个事件侦听器(即
i
索引使我成为您正在循环的对象),则只有最后一个事件侦听器将被持久化,覆盖以前的事件侦听器。这是因为您使用的是
overallsum
——也许您想为每个事件生成不同的名称?毫无疑问,当点击事件触发时,
sum
的值将存储在本地存储库中。但我认为错误可能在代码的其他地方。我的意思是,这不是一个完整的片段。正如@Gonzalo所说,可能还有其他
localStorage
API调用覆盖了您向我们展示的代码中的调用;因为我同意它可能在别的地方,我已经找了好几天了,没办法找到它out@FranciscoHanna我用完整的代码更新了原始问题:)请记住localStorage是一个全局对象,因此如果您有多个事件侦听器(即
I
index使我成为您正在循环的对象)然后,只有最后一个将被持久化,覆盖先前的。这是因为您使用的是
overallsum
——也许您想为每个事件生成不同的名称?毫无疑问,当点击事件触发时,
sum
的值将存储在本地存储库中。但我认为错误可能在代码的其他地方。我的意思是,这不是一个完整的片段。正如@Gonzalo所说,可能还有其他
localStorage
API调用覆盖了您向我们展示的代码中的调用;因为我同意它可能在别的地方,我已经找了好几天了,没办法找到它out@FranciscoHanna我用完整的代码更新了原始问题:)