[이슈] UseMutation 사용시 OnComplete를 써야 하는가?

2021. 1. 16. 18:01프로그래밍-Web/Apollo

setTime을 로직에 걸고, mutation call을 실행하고 싶었다

그리고 업데이트 된 데이터가 필요하여 바로 데이터를 받고 싶었다

근데 저리 찍으니 콘솔에 아무것도 안찍히더라

mutation이 계속 자기 데이터를 반환을 못하는 상황이었다 ㅠㅠ

 

사실 지금 만드는 화면 자체가

 

같은 링크에서 A컴포넌트->B컴포넌트-> A컴포넌트...

이 렌더링이 계속 반복되다가

마지막에 useMutation을 실행하는 이벤트에서는 정작 다른 화면으로 넘어가는 화면이었다

 

그러니까 마지막 이벤트에서 데이터를 받기전에 다음 링크로 넘어가는 상황이었다

 

useMutation자체가 비동기로 실행된대서

.then으로 처리해봤는데

무려 loading조차 false가 찍혔다...뭐지..

 

그래서 useEffect로 처리했더니 더 가관이었다

화면자체가 컴포넌트가 계속 다시 렌더링 되는 컨셉이라

useEffect가 계속 실행되는 문제가 생겼다

 

결국은 Oncomplete를 사용하여 해결했다

 

근데 맞는지 모르겠다... 추후 업데이트 할 예정

내 생각에는 화면이 지속적으로 다시 렌더링 되는 경우에는

useEffect가 계속 돌아가서 아마 피해야하는것 같다

왜냐하면 useEffect는 마운트 될 때마다 실행되니까 말이다