Sobes.tech
Back to questions
Junior — Middle
64

Каким образом реализовать асинхронные операции внутри хука useEffect в React?

Answer from AI

sobes.tech AI

В React внутри хука useEffect нельзя напрямую сделать функцию асинхронной (нельзя писать async перед функцией, переданной в useEffect), потому что useEffect ожидает либо функцию очистки, либо ничего.

Правильный способ — объявить асинхронную функцию внутри эффекта и вызвать её:

useEffect(() => {
  async function fetchData() {
    const response = await fetch('/api/data');
    const data = await response.json();
    // обновить состояние или выполнить другие действия
  }
  fetchData();
}, []);

Или использовать стрелочную функцию:

useEffect(() => {
  const fetchData = async () => {
    const response = await fetch('/api/data');
    const data = await response.json();
    // обновить состояние
  };
  fetchData();
}, []);

Такой подход позволяет выполнять асинхронные операции внутри useEffect корректно.