使用 useEffect 反应挂钩它是 运行 无限循环
With useEffect react hook its running to infinte loop
const addData = async () => {
const result = await axios.post(
"https://jsonplaceholder.typicode.com/todos?_limit=10",
{ id: uuidv4(), title: title, completed: false }
);
setTodos((prevTodos) => [...prevTodos, result.data]);
};
useEffect(() => {
addData();
}, [addData]);
我想在表单提交时调用函数 "addData"
I want to call the function "addData" on form submit
如果那是你想要 运行 它的时候,那我根本不明白你为什么需要 useEffect
。只需在表单提交时调用 addData。
const Example = (props) => {
const [todos, setTodos] = useState([]);
const addData = async () => {
const result = await axios.post(
"https://jsonplaceholder.typicode.com/todos?_limit=10",
{ id: uuidv4(), title: title, completed: false }
);
setTodos((prevTodos) => [...prevTodos, result.data]);
};
return (
<form onSubmit={addData}>
{/* etc */}
</form>
)
}
正如我在下面提到的,从 useEffect 中删除依赖项,useEffect 将在它的依赖项值更改时执行,并且您正在对 useEffect 中的 useEffect 的相同依赖项进行更改,
useEffect(() => {
addData();
}, []);
const addData = async () => {
const result = await axios.post(
"https://jsonplaceholder.typicode.com/todos?_limit=10",
{ id: uuidv4(), title: title, completed: false }
);
setTodos((prevTodos) => [...prevTodos, result.data]);
};
useEffect(() => {
addData();
}, [addData]);
我想在表单提交时调用函数 "addData"
I want to call the function "addData" on form submit
如果那是你想要 运行 它的时候,那我根本不明白你为什么需要 useEffect
。只需在表单提交时调用 addData。
const Example = (props) => {
const [todos, setTodos] = useState([]);
const addData = async () => {
const result = await axios.post(
"https://jsonplaceholder.typicode.com/todos?_limit=10",
{ id: uuidv4(), title: title, completed: false }
);
setTodos((prevTodos) => [...prevTodos, result.data]);
};
return (
<form onSubmit={addData}>
{/* etc */}
</form>
)
}
正如我在下面提到的,从 useEffect 中删除依赖项,useEffect 将在它的依赖项值更改时执行,并且您正在对 useEffect 中的 useEffect 的相同依赖项进行更改,
useEffect(() => {
addData();
}, []);