【发布时间】:2020-05-30 20:36:42
【问题描述】:
我遇到了这个问题,我正在执行 val.set(key, value) 并在文件 vendor-es2015.js 中抛出类型错误 TypeError: val.set is not a function。
代码(简体):
import { Storage } from '@ionic/storage';
map = new Map();
this.storage.set('sth', map);
this.storage.get('sth').then((val) => {
val.set(key, value); //TypeError, returns { } insead of a map.
});
有趣的是,这在浏览器中运行良好,但是当它使用 Capacitor 编译到 Android 时,就会抛出这个错误。
tsconfig.json
"target": "es2015",
"lib": [
"es2018",
"dom"
]
【问题讨论】:
-
您是否尝试调试以查看
val是什么,如果不是您期望的Map? -
@Bergi 哦,是的,我忘了提。我在浏览器中返回的不是 Map 对象,而是一个经典的空 {} 对象。
-
我想知道设备上的离子存储是否不支持以某种方式存储地图?这甚至可能吗?
-
似乎很可能。我不知道离子,但看看How do I persist a ES6 Map in localstorage (or elsewhere)?
标签: angular typescript ecmascript-6 ionic4 capacitor