[英]How do i get Items from localstorage and render it to my list?
我正在嘗試創建一個 Todo 列表,其中包含兩個名為“Title”和“Detail”的值。 到目前為止,我能夠在本地存儲中設置項目,但不確定如何從同一本地存儲中取回項目並將其呈現在列表中。
這是我的 TaskContext.js 組件:
import React, { createContext, useState, useEffect } from "react";
import uuid from "uuid/v1";
export const TaskContext = createContext();
const TaskContextProvider = props => {
const [tasks, setTasks] = useState([
{ title: "name of the wind", detail: "patrick", id: 1 },
{ title: "Rich dad poor dad", detail: "wilson", id: 2 }
]);
useEffect(() => {
localStorage.setItem("tasks", JSON.stringify(tasks));
}, [tasks]);
const addTask = (title, detail) => {
setTasks([...tasks, { title: title, detail: detail, id: uuid() }]);
};
const removeTask = id => {
setTasks(tasks.filter(task => task.id !== id));
};
return (
<TaskContext.Provider value={{ tasks, addTask, removeTask }}>
{props.children}
</TaskContext.Provider>
);
};
export default TaskContextProvider;
請幫幫我。
localStorage.getItem("tasks")
把它放在一個變量和JSON.parse()
。
您可以使用鈎子內的localStorage.getItem("tasks")
從 localStorage 檢索數據。
例子
const SomeComponent = props => {
const [tasks, setTasks] = useState();
useEffect(() => {
let taskList = JSON.parse(localStorage.getItem("tasks")); // get the data
if(taskList) {
setTasks(taskList); // update the state if taskList has data
}
}, []);
return (
/** Print your task here */
);
};
export default SomeComponent;
localStorage.setItem(key: JSON.stringify(value))
在這種情況下,您使用它來將項目保存到 localStorageJSON.parse(localStorage.getItem(key))
獲取鍵存儲的項目,在這種情況下,您需要將其從 JSON 轉換為普通對象,因此需要 JSON.parse()localStorage.clear()
清除 localStorage 中的所有項目localStorage.removeItem(key)
通過 item 鍵從 localStorage 中刪除一個項目const theTasks = JSON.parse(window.localStorage.getItem('tasks'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.