С помощью useEffect реагирует на то, как он запускает цикл - PullRequest
0 голосов
/ 27 апреля 2020
 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 ]

1 голос
/ 27 апреля 2020

Я хочу вызвать функцию "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>
  )
}
0 голосов
/ 27 апреля 2020

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

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