[英]localStorage.setItem() not working: not writing
我正在嘗試創建一個使用 localStorage 的圖書跟蹤器應用程序。 但是,當我設置一個項目時 - 發生的情況是沒有給出錯誤消息,但它沒有記錄到 localStorage。 這是我的代碼:
//var currentId = parseInt(localStorage.getItem("currid"))+1;
var nameOfItem = "bookPackage"+id;
localStorage.setItem(nameOfItem, readBooks);
假設currid
已經在 localStorage 中預設為一個數字。
當我 go 到控制台並輸入localStorage
時,結果如下:
Storage {length: 0}
為什么它不起作用???
編輯: readBooks
是 object。
您只能將字符串存儲到本地存儲中,如果要存儲 object,則需要先 JSON.stringify(obj)。
var str = "22"; localStorage.setItem('key', str); var getStr = localStorage.getItem('key'); console.log(parseInt(getStr)); let obj = {a: 'a1', b: 'a2'}; localStorage.setItem('key2', JSON.stringify(obj)); let getObject = localStorage.getItem('key2'); console.log(JSON.parse(getObject));
正如@sonEtLumiere 已經提到的,您只能將字符串存儲到本地/會話存儲中,因此如果您有對象/數組,則必須在將它們存儲到本地/會話存儲之前使用 JSON 對它們進行字符串化。 我不確定“readBooks”是什么,但由於它是復數,我假設它是一個數組。 因此,您需要使用 JSON.stringify(data) 來存儲該信息。
當您需要從本地/會話存儲中檢索對象/數組數據時,您必須使用 JSON 解析出數據。
JSON.parse(數據)
請記住,Stringify IN 存儲,Parse OUT 存儲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.