Eu esperava o seguinte
- Para
handleLogs()
armazenar{ site: 'https://google.com' }
no estado dos sites e armazenar no armazenamento local do Chrome - Para
useEffect
o gancho pegar o array de sites e salvar no estado do site sempre que o pop-up for aberto
O problema atual é que sempre que abro o pop-up, o site[] está sempre vazio. Consigo ver, através das ferramentas de desenvolvimento, que o site é adicionado ao estado e ao armazenamento no armazenamento local na interação inicial com a entrada. Mas, em aberturas subsequentes, sem interação com a entrada, aparece um array de sites vazio no estado e no armazenamento local. Por quê?
Abaixo está uma versão simplificada real do código que tenho em app.jsx
arquivo
const App = () => {
const [sites, setSites] = useState([]);
useEffect(() => {
chrome.storage.local.get(['sites'], (res) => {
setSites(res.sites);
console.log(res);
});
}, []);
function handleLogs(event) {
setSites((prevSites) => [...prevSites, { site: 'https://google.com' }]);
chrome.storage.local.set({ sites });
}
return <input type="checkbox" onClick={() => handleLogs(event)} />;
};