글 작성자: 망고좋아
반응형

🎯 useEffect에서 async/await 사용하는 방법

  • useEffect 내에서 비동기 처리를 해주려고 async/await을 사용하려고 했는데 오류가 발생했다.
  • Effect callbacks are synchronous to prevent race conditions. Put the async function inside: ..

useEffect는 아무것도 반환하지 않거나 clean up 함수를 반환해야 한다.

 

useEffect(() => {
  async function fetchData() {
    const respons = await fetch("http://localhost:3333/topics/" + id);
    const result = await respons.json();
    console.log(result);
    setTitle(result.title);
    setBody(result.body);
  }
  fetchData();
}, []);
  • 따라서 useEffect 내에서 async/await를 사용하고 싶다면 함수로 만들어서 사용하면 된다.

 

async function fetchData() {
  const respons = await fetch("http://localhost:3333/topics/" + id);
  const result = await respons.json();
  console.log(result);
  setTitle(result.title);
  setBody(result.body);
}

useEffect(() => {
  fetchData();
}, []);
  • 이렇게 함수 밖으로 빼고 useEffect 내에서 호출해도 된다.

 

📌 참고

 
반응형