如何在 reactjs 的 localStorage 键上的单个数组中附加用户输入?

Posted

技术标签:

【中文标题】如何在 reactjs 的 localStorage 键上的单个数组中附加用户输入?【英文标题】:How can I append user inputs in a single array on localStorage key in reactjs? 【发布时间】:2021-11-30 12:32:07 【问题描述】:

每次输入新输入时,我都会尝试将输入附加到本地存储中的数组中。我目前正在使用 localStorage.setItem('Inputs', JSON.stringify(document.getElementById("inputVal").value)) 获取值但不将其添加到任何数组中,而是替换先前的值。我将如何着手将输入添加到本地存储的数组中?我也想知道我是否可以使用.appendChild()

快速更新: 我也试过了

var valueS = document.getElementById("inputVal").value;
    const arr = [];
    const newArry = [
      ...arr,
      valueS
    ]
    //arr.push(valueS)
    localStorage.setItem('Data', JSON.stringify(newArry))

【问题讨论】:

您需要加载之前存储在本地存储中的 JSON 并将其分配给您的 arr 变量。现在你只需覆盖它。 const arr = []; 应该是localStorage的数组,第一次设置时应该是新数组 你正在将一个空数组传播到 newArry 中,它如何包含以前的 localStorage? 【参考方案1】:

就像@nIta、@Patrick Evans 和@David Grosh 指出的那样,const arr = [] 应该包含本地存储数组。

适合我的解决方案如下:

var valueS = document.getElementById("inputVal").value;
    const arr = [JSON.parse(localStorage.getItem('Data'))];
    const newArry = [
      ...arr,
      valueS
    ]
    localStorage.setItem('Data', JSON.stringify(newArry))

【讨论】:

以上是关于如何在 reactjs 的 localStorage 键上的单个数组中附加用户输入?的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组从localStorage映射到reactJS中的表?

ReactJS 中的“context”和“localStorage”有啥区别?

Reactjs&Jest,也改变 localStorage 的测试动作

如何在刷新页面上存储在本地存储中的 reactjs 中使用 JWT 进行身份验证?

如何在 ReactJS 上使用 JWT 令牌注销

身份验证令牌和授权如何在 reactjs 中工作?