更新Chrome存储对象键值
Updating Chrome storage object key value
我正在创建一个Google Chrome扩展,我正在使用chrome.storage.sync.set
函数保存信息。根据API,您可以创建对象并保存帐户之间的信息。虽然我在创建这个对象时没有遇到任何麻烦,但我在更新特定的键和同步值时遇到了麻烦,而没有为每个更改创建一个完全独立的对象。
例如,我的对象在登录到控制台时看起来像这样:
{
profile: {
preferences: {
username: 'my username'
}
}
}
我想简单地更新值'username'。
我试过这样做(我可以通过chrome.storage.sync.set函数回调访问对象):
_ext.profile.preferences.username = 'my new username';
更新对象,但不保存和存储对象。
我也试过这个方法:
_ext.profile.preferences.username = 'my new username 2'; /* update the key value */
chrome.storage.sync.set(_ext.profile) /* save the entire object to memory */
这个方法也不起作用。
你认为这里的问题是什么?是我试图保存对象的方式还是有更好的方法来使用基于设置的方法?
如果您在"set"完成之前立即调用"get",这可能就是问题所在。您的示例没有显示传递回调来处理"set"的完成。
我在寻找解决同样问题的时候偶然发现了你的帖子。我最终使用了与React Redux状态管理类似的方法。我没有尝试操作存储的数据,而是复制然后替换它。
var data = {};
chrome.storage.sync.get(function(result){
data = result.storedData;
data.profile.preferences.username = 'my new username';
});
chrome.storage.sync.set({'storedData': data});
相关文章:
- 将JSON对象的表示形式更改为显式键/值格式
- JavaScript,循环具有不同数量对键值的对象
- 通过键/值引用更新Javascript对象值
- JS在封装对象中查找键值对
- ES6类型表示可以反转的键值对象
- 下划线.js,根据键值删除对象数组中的重复项
- 在键值对的唯一组合上合并对象
- 将键/值数组中的对象与另一个对象(键/值)进行比较
- javascript对象键值对
- 根据嵌套数组中匹配的键值获取对象
- 如何将这些对象键值放入文本框中
- 将键、值对象转换为仅值数组
- 如何通过在JavaScript对象中的多个键/值对中查找最小值来选择键/值配对
- 将具有键值对数组的JavaScript对象发布到WebApi时出现问题
- 使用类似于 Array.prototype.map() 的方法将数组转换为键值对象
- JavaScript 从字符串创建键值对象数组
- 如何在javascript中仅用键值对象的值重建数组
- 从字符串生成js键值对象
- 在jQuery中添加属性时,使用attr()方法,将属性作为键值对象传递,还是直接传递,哪种方法执行速度最快?
- 如何在键值对象中添加引号