[오류] useEffect 밖에 선언한 변수에 undefined

Preznt·2023년 2월 18일
0

React

목록 보기
1/2

useEffect 밖에 let data 이런식으로 변수를 선언해두고
useEffect 에서 값을 넣어서 컴포넌트 retrun 할때 값을 표시해 주려고 했는데
해당 값이 undefined 으로 나오는 문제를 발견했다..

검색해보니 이미 렌더링이 끝난 뒤에 (return이 실행된 뒤에) 아무리 data의 값이 바뀌었기 때문이라고 한다. 그렇기에 값이 바뀌었을때 리액트가 인식하고 다시 렌더가 되려면 state를 사용 해야 한다.

useEffect(() => {
    (async () => {
      const result = await payApprove(dataPayApprove);
      if (result.approved_at) {
        await setApprove({ ...result });
      }
      console.log(result);
    })();
  },[]);

위와 같이 state변수를 사용해서 데이터를 저장하니 문제없이 작동되었다.

0개의 댓글