In my React project I use Redux where I save the serialized state:
const saveState = (state: any) => {
try {
const serializedState = JSON.stringify(state);
localStorage.removeItem('state');
localStorage.clear();
localStorage.setItem('state', serializedState);
} catch (e) {
console.log(e);
let _lsTotal = 0, _xLen, _x; for (_x in localStorage) { if (!localStorage.hasOwnProperty(_x)) { continue; } _xLen = ((localStorage[_x].length + _x.length) * 2); _lsTotal += _xLen; console.log(_x.substr(0, 50) + " = " + (_xLen / 1024).toFixed(2) + " KB") }; console.log("Total = " + (_lsTotal / 1024).toFixed(2) + " KB");
}};
Since I came upon the 'Setting the value of 'state' exceeded the quota' error I tried to clear the local storage (see above). Yet I still get this error, and the code in the catch part shows 0.00KB of the storage:
DOMException: Failed to execute 'setItem' on 'Storage': Setting the value of 'state' exceeded the quota.
at saveState (http://localhost:xxxx/static/js/main.chunk.js:16322:18)
at http://localhost:xxxx/static/js/main.chunk.js:16350:5
at invokeFunc (http://localhost:xxxx/static/js/1.chunk.js:276358:19)
at trailingEdge (http://localhost:xxxx/static/js/1.chunk.js:276403:14)
at timerExpired (http://localhost:xxxx/static/js/1.chunk.js:276391:14)
Store.ts:1967 Total = 0.00 KB
How to avoid this error?