首页 > 解决方案 > Chrome 扩展 - 存储在对象中设置特定键而不覆盖对象的其余部分?

问题描述

我在存储中有这个对象

chrome.storage.sync.set({
        user: {
            extensionMode: "filter",
            list: ["42", "42", "42"]
        }
    }, () => { });

现在,在不同的地方,我想更改extensionMode

chrome.storage.sync.set({user: { extensionMode: wantedMode }}, () => { });

那是覆盖user.list。如何仅更改extensionMode而不会覆盖其余用户

标签: javascriptobjectgoogle-chrome-extension

解决方案


我这么胖的最佳答案是:

chrome.storage.sync.get("user", (res) => {
    let updatedUser = res.user;
    updatedUser.extensionMode = wantedMode;
    chrome.storage.sync.set({ user: updatedUser }, () => {
        // Code
    });
});

有用!只是有点混乱,使回调变得更糟:
还有其他想法吗?


推荐阅读