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

badassong·2023년 7월 24일
1

React

목록 보기
53/56
post-thumbnail

useEffect 내에서 비동기 처리를 해주려고 async/await을 사용하려고 했는데 오류가 발생했다.

Effect callbacks are synchronous to prevent race conditions. Put the async function inside: ..

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

따라서 useEffect 내에서 async/await를 사용하고 싶다면 함수로 만들어서 사용하면 된다.

useEffect(() => {
  async function fetchData() {
    const respons = await fetch("api링크");
    const result = await respons.json();
    console.log(result);
    setX(result.data.info5);
  }
  fetchData();
}, []);
  async function fetchData() {
     const respons = await fetch("api링크");
     const result = await respons.json();
     console.log(result);
     setX(result.data.info5);
     console.log(x);
   }

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

이렇게 함수 밖으로 빼고 useEffect 내에서 호출해도 된다.

profile
프론트엔드 대장이 되어보쟈

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기