我不明白如何使用Dexie从IndexedDB中获取值.数据库在inspect tool的"应用程序"选项卡中都很好.完全是新手,所以请理解.
我的数据库.js
import Dexie from "dexie";
export const db = new Dexie("myDatabase");
db.version(2).stores({
history: "++id, daterange, days",
storage: "id, name, value"
});
db.on("populate", function () {
db.storage.add({
id: 0,
name: "total",
value: 20
});
db.storage.add({
id: 1,
name: "left",
value: 20
});
});
db.open();
应用程序.快速的
<script>
import Counter from "./src/Counter.svelte";
import New from "./src/New.svelte";
import History from "./src/History.svelte";
import { liveQuery } from "dexie";
import { db } from "./src/db";
let total = liveQuery(() =>
db.storage
.where("name")
.equals("total")
.value.then(function(a) {
totals = a;
})
);
let left = 25;
</script>
<style>
main {
width: 100%;
}
</style>
<main>
<Counter daysLeft={left} daysMax={total}/>
<New />
<History />
</main>
无论我try 什么,对象都有daysMax={total}
个输出undefined
、[object Object]
或类似[Dexie object Object]
的东西.我只想从db得到20
,如db所示.js:
db.on("populate", function () {
db.storage.add({
id: 0,
name: "total",
value: 20
});
(这一切都有效,在indexedDb中可见)