Chrome.storage.sync.set不保存值

lsmepo6l  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(94)

所以我在Google Chrome上遇到了一点关于本地存储的问题。从我的研究来看,我的语法似乎是正确的,但由于某种原因,值没有被保存。下面是我的代码:

chrome.storage.sync.get(accName, function(data) {
    var accData = data[accName];
    // Stuff
    chrome.storage.sync.set({ accName: accData }, function() {
        alert('Data saved');
    });
});

字符串
每次我重新运行它,data[accName]返回undefined。我已经尝试了相同的代码与文字值的sync.set参数(如{ 'john32': ['fk35kd'] }),这似乎工作,所以我真的很困惑,什么问题可能是。任何帮助将不胜感激。

kpbwa7wx

kpbwa7wx1#

这个问题是试图将accName插入到set语句中的一个对象文字中(归功于上面的Rob)。我最终得到的是一个带有属性'accName'的对象,而不是accName本身的值。这里有一个修复方法。

var obj = {};
obj[accName] = accData;
chrome.storage.sync.set(obj, function() {
    alert('Data saved');
});

字符串

更新

ES6现在允许在对象字面量中计算属性名称,因此以上可以通过以下方式实现:

chrome.storage.sync.set({ [accName]: accData }, function() {
    alert('Data saved');
});

相关问题