我對 Web 開發(fā)還比較陌生,現(xiàn)在正在部署我的第一個 Web 應用程序(待辦事項列表),您可以查看它https://peaceful-stream-48694.herokuapp.com/?,F(xiàn)在我想添加 HTML 本地存儲來保存待辦事項,但在初始化網(wǎng)站時拋出類型錯誤(無法讀取我的待辦事項錯誤的屬性)。我知道,當存儲中沒有項目時,我必須將數(shù)組設置為零,或者在有項目的情況下將它們加載到數(shù)組中(這已經(jīng)有效),但是我不知道在有項目時如何執(zhí)行此操作存儲中沒有任何內(nèi)容。我想這是一個范圍問題,但我只是不知道如何解決。這是存儲和加載數(shù)據(jù)的代碼段:function saveList() { let str = JSON.stringify(toDoList); localStorage.setItem("todoList", str ); } function loadList() { if (toDoList == null) { toDoList = []; } else { let str = localStorage.getItem("todoList") toDoList = JSON.parse(str); displayList() } } function displayList() { if (toDoList != null) { for(i=0; i < toDoList.length; i++) { htmlInsert ='<div id="' + toDoList[i].id + '" class="newItem"> <input type="checkbox"> <p>' + toDoList[i].toDo +'</p> <button type="button" class="deleteButton">DELETE</button></div>'; list = document.getElementById("itemsList"); list.insertAdjacentHTML("beforeend", htmlInsert); SetupEventListener(); } } } loadList()To-Do 數(shù)組在一開始就被全局定義: let toDoList = [];我很感激任何幫助。非常感謝,很抱歉,如果這很混亂,不知道如何讓它更清楚。干杯
1 回答

寶慕林4294392
TA貢獻2021條經(jīng)驗 獲得超8個贊
你初始化let toDoList = [],然后你做的第一件事(在 loadList() 中)是 test if (toDoList == null)。這個條件永遠不會被滿足。
我認為你的 loadList 函數(shù)應該如下所示:
function loadList() {
let str = localStorage.getItem("todoList"); // can be null
toDoList = str ? JSON.parse(str) : [];
displayList();
}
然后displayList()你可以刪除,if (toDoList != null)因為這個條件總是會滿足(todoList永遠不會為空,因為它總是初始化為數(shù)組)
- 1 回答
- 0 關(guān)注
- 102 瀏覽
添加回答
舉報
0/150
提交
取消