【发布时间】:2019-07-09 22:43:54
【问题描述】:
错误发生在这里:
let moonPortfolio;
...
moonPortfolio = JSON.parse(localStorage.getItem('moonPortfolio'));
我发现 this answer 是有道理的,但是在此重构之后我仍然收到该错误:
正如错误所说,localStorage.getItem() 可以返回字符串或 null。 JSON.parse() 需要一个字符串,所以你应该在尝试使用它之前测试 localStorage.getItem() 的结果。
if (portfolio.length === 0) {
const storedPortfolio = localStorage.getItem('moonPortfolio');
if (typeof storedPortfolio === 'string') {
moonPortfolio = JSON.parse(localStorage.getItem('moonPortfolio'));
}
else {
moonPortfolio = [];
}
if (moonPortfolio) {
const savedPortfolio = Object.values(moonPortfolio);
this.props.fetchAllAssets();
// this.props.addCoins(savedPortfolio);
}
}
我首先将localStorage moonPortfolio 的结果设置为一个var,然后检查该var 是否为typeof 字符串。仍然收到打字稿错误?
这里有什么想法或方向吗?
【问题讨论】:
标签: javascript typescript local-storage