【发布时间】:2021-01-16 18:29:33
【问题描述】:
我正在尝试在 React 中保存到本地,并且我的应用程序正在运行,但由于此警告,我无法部署它。警告是:
React Hook useEffect 缺少一个依赖项:'saveLocalTodos'。 要么包含它,要么移除依赖数组
我的代码是:
// Run once when the app starts
useEffect(() => {
getLocalTodos();
}, []);
// useEffect
useEffect(() => {
// Function
function filterHandler() {
switch (status) {
case `completed`:
setFilteredTodos(todos.filter((todo) => todo.completed === true));
break;
case `uncompleted`:
setFilteredTodos(todos.filter((todo) => todo.completed === false));
break;
default:
setFilteredTodos(todos);
break;
}
}
filterHandler();
saveLocalTodos();
}, [todos, status]);
// Save to Local
const saveLocalTodos = () => {
localStorage.setItem("todos", JSON.stringify(todos));
};
const getLocalTodos = () => {
if (localStorage.getItem("todos") === null) {
localStorage.setItem("todos", JSON.stringify([]));
} else {
let todoLocal = JSON.parse(localStorage.getItem(`todos`));
setTodos(todoLocal);
}
};
【问题讨论】:
-
问题是
linter,删除[]依赖将使错误消失,像这样:javascript useEffect(() => getLocalTodos()) -
请参考useEffect docs 以获得进一步的参考:)。干杯
-
我试过了,但没有解决错误。仍然显示相同的错误。
标签: javascript reactjs use-effect