[英]Javascript Saving and retrieving array data to and from localstorage
我有一个看起来像这样的数组:
this.data = [
{ cols: 1, rows: 1, y: 0, x: 4 },
{ cols: 1, rows: 1, y: 2, x: 5 }
];
我使用以下命令将其保存到本地存储中:
localStorage.setItem('my_data', JSON.stringify(this.data));
然后,我使用以下方法检索它:
this.data = JSON.parse( localStorage.getItem('my_data'));
这个问题是,当我尝试获取数据时,出现此错误:
NULL类型不能分配给String类型。
我怎样才能解决这个问题?
要消除类型错误(仅在启用了严格限制的情况下显示),可以确保处理空值:
// Warning... don't use this code until you read the next section!
data = JSON.parse(localStorage.getItem('my_data') || '');
这是因为localStorage.getItem
可以返回string | null
string | null
但JSON.parse
仅接受string
(即不为null)。
如果您还希望代码能正常工作,那么我建议的解决方案将更进一步,并提供合理的默认JSON字符串:
data = JSON.parse(localStorage.getItem('my_data') || '[]');
仅在启用strictNullChecks
,此问题中的错误才可见,因为这捕获了分配给string
的潜在null
。
在这种情况下的确切错误将是:
Argument of type 'string | null' is not assignable to parameter of type 'string'.
Type 'null' is not assignable to type 'string'.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.