useEffect(() => {
const fetchData = async () => {
try {
const response = await axios.get('http://localhost:8888/todos');
console.log('Response:', response.data);
const todosWithBooleanDone = response.data.map(todo => ({
id: todo.id,
name: todo.name,
done: todo.done === 1,
}));
console.log('Setting todos:', todosWithBooleanDone);
setTodos(todosWithBooleanDone);
} catch (error) {
console.error('Error fetching todos:', error);
}
};
fetchData();
}, [todos]);
字符串
我不指望有上百万的请求。
如果数组中没有依赖todos,我的应用程序就无法工作!
我想添加一个新的useEffect,但它不工作。
我接近解决方案,但我真的不知道如何解决它。
1条答案
按热度按时间uxhixvfz1#
每次在
todos
上有更新时,都会调用您的useEffect
,并且您会反复调用setTodos
来更新todos
,这会导致无限次调用。您的第一个
useEffect
可以没有依赖项,仅在组件挂载上运行以获取和设置todos
。字符串
每次todos更改时都要运行另一个
useEffect
。型