繁体   English   中英

Javascript与本地存储之间进行数组数据的保存和检索

[英]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 | nullJSON.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM