每次我刷新页面时,它都会在我的本地存储中创建空字符串,每次它都会在我的Web上创建空元素,我不想这样,我怎么能解决这个问题呢
function saveLocalTodos(todo) {
//check
let todos;
if(localStorage.getItem('todos') === null){
todos = [];
}else {
todos = JSON.parse(localStorage.getItem('todos'))
}
todos.push(todo);
localStorage.setItem('todos', JSON.stringify(todos));
}
window.onload = function() {
const storedData = localStorage.getItem("todos");
if (storedData && storedData !== "") {
let todos;
if(localStorage.getItem('todos') === null){
todos = [];
}else {
todos = JSON.parse(localStorage.getItem('todos'))
} else {
localStorage.removeItem('todos')
};
}
1条答案
按热度按时间ldxq2e6h1#
也许你可以重构为这样的东西:
这样你就不需要关心
localStorage
项中是否有空字符串。你总是会得到你能找到的东西。唯一的一件事是,你需要确保你会有下一个场景:1.当调用
localStorage.getItem('todos')
时,您将得到null
或''
1.调用
localStorage.setItem('todos', /*whatever*/)
时,将设置有效的JSON数组字符串化或空字符串这样,在
localStorage
中查找todos
时,您将获得一致性。