使用 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();
  }, []);