【问题标题】:Strange Issue with javascript setting the local storagejavascript设置本地存储的奇怪问题
【发布时间】:2018-09-09 18:50:19
【问题描述】:

我想用“DONE”值的唯一键设置本地存储

例如:

PdfSeen as key DONE as value

VideoSeen as key DONE as value

两者

localStorage.setItem("PdfSeen" , "DONE"); 
localStorage.setItem("VideoSeen" , "DONE"); 

在本地存储中设置一个新条目

键 DONE 和值未定义

我的预期结果是

PdfSeen as key DONE as value

VideoSeen as key DONE as value

请检查下图以了解问题

下面的代码在本地存储中导致上面的条目

【问题讨论】:

  • 你有什么问题?
  • 我很难理解您的问题。您能否详细说明您在运行代码时预期会发生什么以及实际发生了什么?
  • 您如何验证问题?如果您在代码之后执行console.log(localStorage.getItem('PdfSeen')),您应该会在控制台中看到"DONE"。不是这样吗?
  • @Jankapunkt 您假设存在“问题”。 OP 尚未提供minimal reproducible example;我们不知道为什么 OP 认为有什么问题。
  • @Jankapunkt 通过解释“像这样的错误”是什么意思。实际问题是什么?必须有一些观察,你期望 X 但看到 Y,如果是这样,你有证据你应该发布。

标签: javascript local-storage


【解决方案1】:

我想我找到了你的问题。您必须降低本地存储的门槛。请看以下图片:

现在使用光标将线条向下拖动一些像素,您将看到真正的键:

【讨论】:

  • 如果这就是答案,那么关于“value undefined”的说法从何而来?截图中没有undefined
  • 刚刚发生了什么?
  • 这是 OP 不完整的问题描述中缺少的部分 - OP 没有提到结果没有使用 J 的代码验证,而是在浏览器选项卡中可视化。 OP 还将 undefined 作为控制台输入的返回值与开发人员工具中未显示的键混淆。现在这是一个很好的例子,说明为什么 mcve 是一个好问题的一个非常重要的要求。
  • @melpomene 在问题下方的 cmets 中很好地阐明了这一点。
【解决方案2】:

console 中的undefined 仅表示,没有返回值。

localStorage.setItem("PdfSeen", "DONE");      // will log `undefined`
console.log(localStorage.getItem("PdfSeen")); // will log the value.

另见Using the Web Storage API

【讨论】:

  • 如果localStorage.setItem() 不起作用(极不可能),是什么让您认为其他方法会起作用?
  • @Phil undefinedconsole 中仅表示没有返回值......这可能是造成混乱的原因。
  • 我不确定这与您的回答有什么关系
  • @Phil 因为图像已添加,因此答案已更新...最好对问题投反对票,而不是答案。
  • @27mdmo7sn 这不是我的答案,并且该代码不会出现在您的问题中的任何地方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多