С помощью 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>
)
}