代码之家  ›  专栏  ›  技术社区  ›  TimTheEnchanter

Deji.JS索引在重新加载时丢失

  •  1
  • TimTheEnchanter  · 技术社区  · 6 年前

    我有一个电子应用程序 Dexie.js 在indexeddb之上。遵照指示 here 对于Typescript,我已经把DeCH子类分类,并且在我的构造函数中定义了我的DB:

    super('myDb');
    this.version(1).stores({
      myTable: 'testGuid, tag, downloadDate'
    });
    

    一切都是第一次。DB和表是在IndexedDb中创建的,我可以插入记录。通过Chrome DeVoots的“应用”选项卡查看索引数据库,我可以看到表中的数据,以及每个索引中列出的数据。

    如果我现在只是重新加载应用程序(在electron中为ctrl-r),则至少有一个索引为空,并且我开始在vscode控制台中获取错误:

    Uncaught (in promise) TypeError: Cannot read property 'keyPath' of undefined
    Uncaught TypeError: Cannot read property 'databaseId' of undefined 
    

    数据仍在表中-我可以在“应用程序”选项卡的“表”视图中看到它: Data in table

    但是,当我单击“表”视图中的一个索引时,它只是一个空白:

    No data in index?

    我还注意到数据库列表似乎被这两个 安全来源 版本 空白:

    Database Info

    我刚做了另一个测试,实际上我甚至不需要在表中插入任何记录来引起问题。只需加载创建db/表的应用程序,然后重新加载electron就会导致索引变得不稳定。

    知道我做错了什么吗?

    • 德谢2.0.4
    • 电子2.0.3
    • 角度6.0.1
    • 打字本2.7.2
    • 节点8

    谢谢,

    特特

    更新第1号

    我甚至不需要重新加载我的应用程序。如果我简单地加载应用程序,进入应用程序标签并验证Db/表/索引都存在,然后从应用程序选项卡中刷新DB,现在至少有一个索引被破坏/空了。

    更新第2号

    通过使用Dexie Typescript指令的示例代码,我得到了同样的结果。

    0 回复  |  直到 6 年前