IndexedDB getByID和getByIndex在react中不起作用

xzabzqsa  于 2023-03-06  发布在  IndexedDB
关注(0)|答案(1)|浏览(228)

我在react中使用indexedDB时遇到了一个问题。我有一个用于保存参数的数据库,并且每天必须为每个用户只保存一个参数。因此,我决定为数据库的一个键设置一个dateAndId

{
      store: "dataTime",
      storeConfig: { keyPath: "dateAndId", autoIncrement: false},
      storeSchema: [
        { name: "parameters", keypath: "parameters", options: { unique: false } },
      ],
    }

我使用update函数没有问题。我用下面的代码更新数据库。它找到相应的对象并更新它。

update({
      dateAndId: currentDate + '-' + UserInfo.id,
      parameters: {
        ...UserInfo.parameters,
      },
    }).then(
      (event) => {
        console.log("timeData updated: ", event);
      }
    );

但是当我使用getByIDgetByIndex时,错误弹出并显示:找不到对应对象
例如,对于getByIndex,我得到

当我使用getByID时我得到

虽然我确信参数是一个有效的键,因为它是一个字符串。
这是我的代码getByID

useEffect(() => {
    getByID(String(currentDate + '-' + UserInfo.id)).then(data => {
      UserInfo.setParameters(data);
      });
  }, []);

你认为确切的问题是什么?我认为很简单,但我看不出来。
提前感谢您的帮助

zazmityj

zazmityj1#

ID不是Integer,而是String,因此indexedDB无法处理

相关问题