在第二个网站 session/after 刷新 localStorage 中设置项目

Set items in localStorage on second web session/after refreshing

我正在将数组元素设置到我的 localStorage 中。

我在此处单击函数 appendTasks 一次,第一个 Web 会话的项目已正确存储在 localStorage 中:

function appendTasks() {
  tasks.push(input.value);
  tasks.join(" ");
  for (let i = 0; i < tasks.length; i++) {
     //Add to Local Storage
    localStorage.setItem(i, tasks[i]) 
  }

这是我的 localStorage 的样子:

一旦我在添加这些元素后刷新页面并尝试添加更多,它根本就没有。它甚至在第一个网络会话中添加元素。

有人知道我为什么会看到这种行为吗?

谢谢

不确定为什么要以这种方式存储任务,但您可以尝试类似的方法。 您几乎想要跟踪添加到本地存储的项目数量,并将其作为项目存储在本地存储中。 然后每次刷新页面时,将 taskIndex 设置为下一个要使用的索引。

function appendTasks() {
  let taskIndex = localStorage.getItem('taskIndex');
  taskIndex = taskIndex ? parseInt(taskIndex) : 0;
  
  tasks.push(input.value);
  
  for (let i = 0; i < tasks.length; i++) {
    //Add to Local Storage
    localStorage.setItem(taskIndex, tasks[i]);
    taskIndex++
  }
  localStorage.setItem('taskIndex', taskIndex);
}