我使用 autoIncrement 创建了一个对象存储:db.createObjectStore("items", {autoIncrement:true});
现在我希望能够根据给定的键和新值更新项目,因此我编写了以下函数:
let updateItem = (key, newData) => {
let objectStore = db.transaction(["items"], "readwrite").objectStore("items");
let request = objectStore.get(key);
request.onsuccess = (e) => {
let data = e.target.result;
Object.assign(data, newData);
let requestUpdate = objectStore.put(data);
};
}
但是,它不会更新值,而是使用新数据创建一个新项目。我认为这是有道理的,因为e.target.result不包含有关其密钥的任何信息。那么如何更新这样的对象存储中的元素呢?
慕盖茨4494581
狐的传说
相关分类