如何解决为什么带有非入站键的 Dexie 的 bulkPut() 需要一个 keys 数组参数?
我正在尝试像示例一样:
class ItemDatabase extends Dexie {
drawings: Dexie.Table<IDrawingRow,number>;
constructor (databaseName: string) {
super(databaseName);
this.version(1).stores({
drawings: 'id,drawingId'
});
this.drawings = this.table('drawings');
}
}
export enum DrawingType {
Undefined,Point,Line,Polygon
}
interface IDrawingRow {
id: number;
type: DrawingType;
coordinates: [number,number][];
drawingId: number;
}
创建数据库:
private db: ItemDatabase;
constructor() {
this.db = new ItemDatabase('itemDb');
this.db.open().catch(err => {
console.error(`Open failed: ${err.stack}`);
});
}
添加行:
const rows: IDrawingRow[] = [];
for (let id = 0; id < 10; id++) {
rows.push({
id: ++id,type: DrawingType.Point,coordinates: [[123,456]]
drawingId: 13
});
});
from(this.db.drawings.bulkPut(drawingRows)).subscribe();
但我明白了:
bulkPut() with non-inbound keys requires keys array in second argument
所以我试图用我在行中提供的唯一主键和索引drawingId来指定表,它不是唯一的,我也在每行中提供。
这与此非常相似:
https://dexie.org/docs/Table/Table.bulkPut()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。