【问题标题】:Saving array and objects within said array在所述数组中保存数组和对象
【发布时间】:2021-12-17 05:53:48
【问题描述】:

我正在尝试使用 vue.js 制作一个简单的应用程序,我想尝试保存我在数组中设置的待办事项,以便在我重置站点时它们仍然存在。浏览了一些我得到的文档:

data() {
        return {
            array: [
                 {id: 1, label: 'learn vuejs'},
            ]
        }
    }, 
methods: {
        persist() {
            localStorage.array = this.array;
            alert('items saved')
        }
    },
mounted() {
        if (localStorage.array && localStorage.array.id) {
            this.array = localStorage.array;
            this.array[id] = localStorage.array.id;
        }
    },

虽然这确实将我的数组保存到 localStorage,但它不是其中的对象。当我在控制台中检查 localStorage 时,它​​显示:

数组:“[对象对象]”

有人知道如何保存数组中的项目吗?如果你这样做,请给我解释一下。

【问题讨论】:

  • 如果您将保存的对象打印到控制台,将使用默认的toString 方法。这不适用于嵌套对象。试试JSON.stringify(obj)
  • 另外,您将无法使用localStorage.array.id 访问您的阵列。由于“数组”不是对象,因此不会有 id 属性。只有 localStorage.array[0].id 可以工作,因为您必须告诉 javascript 您要访问数组的哪个索引(在这种情况下为对象)。

标签: javascript arrays vue.js vuejs3


【解决方案1】:

您需要将它们存储为字符串。所以localStorage.array = JSON.stringify(this.array),当从localStorage 获取时this.array = JSON.parse(localStorage.array);

【讨论】:

  • @Danesinhell 这就是 json 的存储方式。你需要JSON.parse()它来获取js可读对象。
  • 非常感谢,这是我的代码中的错误导致加载混乱
猜你喜欢
  • 2015-09-23
  • 2017-01-13
  • 2020-12-19
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 2017-02-17
  • 2020-03-17
相关资源
最近更新 更多