【发布时间】:2021-02-13 07:11:10
【问题描述】:
我使用 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 不包含有关其密钥的任何信息。那么如何更新这样一个对象存储中的元素呢?
【问题讨论】:
-
@Josh yup.. 这是重复的.. 抱歉,在询问之前我已尽力搜索.. 谢谢您的评论。
标签: javascript updates auto-increment indexeddb