如何在 Ionic 应用程序上持久化打字稿映射



所以我的应用程序中有一些对象,Map<number,any[]>作为它们的属性之一。目前,我正在使用localForage进行持久性,当保存地图时,它会将其存储在使用Android或Windows(模拟浏览器(的ionic serve中,但不能使用ios。它在我的安卓设备中也不起作用。

这是测试我的观点的代码示例:

let myMap: Map<number,any[]> = new Map();
myMap.set(1,['banana','pimento']);
console.log(myMap);
localForage.config({});
localForage.setItem("myMap",myMap)
 .then(()=>localForage.getItem("myMap")
  .then(map => console.log(map))
);

安卓和Windows(浏览器模拟(上,它显示地图很好,在ios上则不然。不同之处在于ios使用webSQL数据库,而其他使用indexedDB数据库。

我需要序列化它吗?有没有更好的方法来存储解决此问题的数据?

所以我找到了解决问题的方法,用以下内容序列化Map对象:

JSON.stringify(Array.from( myMap.entries()));

然后用以下命令反序列化它:

new Map<any,any>(JSON.parse(myMapFromStorage));

相关内容

  • 没有找到相关文章

最新更新