전부터 이슈가 있었던 state 변동 후 코드 실행에 대해서 한참을 검색해봤지만, 결국 정석적인 방법은 useEffect로 결론났다. (async-await
와 상관이 없었다.) 즉 state가 변화된 이후에 진행되어야 한다면 다음과 같이 작성해야 한다.
useEffect(() => {
// any값이 변화된 이후 진행되야 하는 코드
}, [any]);
(중략)
const trigger = () => {
setAny("ex");
}
(위의 링크에 정말 잘 정리되어 있다!) useEffect
는 항상 함수를 반환해야 한다. 따라서 async-await
를 섣불리 사용하면 이 함수들은 프로미스를 반환하기 때문에 에러가 발생한다.
useEffect(() => {
async function ex() {
const A = await 비동기함수;
console.log(A);
}
ex();
}, [])
이렇게 작성해야 한다! useEffect 내부에 함수를 만들고 이를 실행해주면 된다.