最初存储在chrome浏览器本地存储中的数据是
`{
storedGroupsData: {
grp1: [
{},{}
]
}
}`
当我尝试添加另一个组时说“grp2”我想要这个
{
storedGroupsData: {
grp1: [
{},{}
],
grp2:[
{},{}
]
}
}
但我明白了
{
storedGroupsData: {
grp2: [
{},{}
],
storedGroupsData:{
grp2: [
{},{}
]
}
}
}
代码是
import getTabData from "./getTabData.js";
const createGroup = async (selectedTabs, groupName) => {
const groupData = [];
let storedGroupsData;
try {
检索本地存储中存储的数据
storedGroupsData = await chrome.storage.local.get('storedGroupsData');
storedGroupsData = storedGroupsData || { }
console.log(storedGroupsData);
} catch (err) {
console.error(err);
}
将 tabInfo 压入 groupData 数组
for (const tabId of selectedTabs) {
const tabInfo = await getTabData(tabId, groupName);
groupData.push(tabInfo);
}
创建新群组
const newGroup = {
[groupName]: groupData
};
使用chrome扩展api提供的chrome.storage.local.se()函数更新storedGroupsData并将其保存在本地存储中
try {
const modifiedStoredGroupsData = { ...storedGroupsData, ...newGroup };
console.log(modifiedStoredGroupsData);
await chrome.storage.local.set({'storedGroupsData' : modifiedStoredGroupsData});
storedGroupsData[groupName] = groupData;
await chrome.storage.local.set({storedGroupsData})
} catch (err) {
console.error(err);
}
};
export default createGroup;
get
的结果不是键的值,而是一个对象{[key]: value}
,因此要获取值,您需要读取结果的[key]
:
let data = (await chrome.storage.local.get('storedGroupsData')).storedGroupsData || {};
同时删除第二个
set
调用,因为它是不必要的重复。