С помощью useEffect реагируйте на его запуск до бесконечного цикла

 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" при отправке формы

2 ответа

Решение

Удалите зависимость из useEffect, как я упоминаю ниже, useEffect будет выполняться при изменении значения зависимости, и вы вносите изменения в ту же зависимость useEffect внутри useEffect,

useEffect(() => {
    addData();
  }, []);

Я хочу вызвать функцию "addData" при отправке формы

Если это когда вы хотите запустить его, тогда я не понимаю, зачем вам нужен 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>
  )
}
Другие вопросы по тегам