我有这个组件来创建配方,但是我想将数据存储在本地存储中。 当我打印“ 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().
答案 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'));