将数据存储在本地存储中

时间:2020-10-15 12:35:22

标签: vue.js vuetify.js

我有这个组件来创建配方,但是我想将数据存储在本地存储中。 当我打印“ recipeData”时,它会打印在控制台上。 例如,我输入配方的名称及其说明等,然后在控制台中打印数据,并打印输入的元素,但是当我打印“ recipeData.title”时,它被打印为没有定义的。 当我想将配方数据存储在本地存储中时,它不会存储它。 我该如何解决这个问题?

Traceback (most recent call last):

  File "<ipython-input-142-df5e3ddd91ea>", line 1, in <module>
    runfile('C:/Users/LL/.spyder-py3/unbenannt0.py', wdir='C:/Users/LL/.spyder-py3')

  File "C:\Util\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\Util\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/LL/.spyder-py3/unbenannt0.py", line 70, in <module>
    'P', 'Q']])

  File "C:\Util\Anaconda3\lib\site-packages\pandas\plotting\_core.py", line 783, in __call__
    label_name = label_kw or y

  File "C:\Util\Anaconda3\lib\site-packages\pandas\core\generic.py", line 1555, in __nonzero__
    self.__class__.__name__

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

2 个答案:

答案 0 :(得分:1)

要将数据存储到localStorage,必须先定义存储的名称,然后再定义数据。

localStorage.setItem('storageName', recipeData)

查看localStorage的数据。

console.log(localStorage.getItem('StorageName'))

了解更多https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

,并且不需要this.recipeData,因为您在函数上声明了变量。使用recipeData

获得足够的数据

答案 1 :(得分:1)

本地存储是键值数据结构,您必须指定一个键作为第一个参数,该键将用于从存储中检索数据。这是语法localStorage.setItem(keyName, keyValue);

此外,它还必须作为字符串保存和检索,在保存时进行字符串化,并在获取时进行解析。

您保存对象的代码应如下:

localStorage.setItem('recipeDataKey', JSON.stringify(this.recipeData));

并用于检索:

const recipeData = JSON.parse(localStorage.setItem('recipeDataKey'));