簡體   English   中英

localStorage.setItem() 不工作:不寫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM