trouble shooting

RN GraphQL 결과는 제대로 오는데, 랜더링이 안됨

식피두 2020. 10. 19. 12:45

랜딩 스크린이 여러가지 섹션으로 구분이 되고,

각 섹션 마다 GraphQL Query가 하나씩 매핑이 되어있는 상황에서,

 

gql`` 문법을 이용해 해당 쿼리들을 모두 모아 놓고

 

컴포넌트 함수 도입 부분에 useQuery를 이용해서 data를 채워 넣은 다음

data가 null이 아닌 경우에만 랜더링 하도록 View를 작성하였는데, 

 

이상하게도 가장 데이터가 많은 섹션만 랜더링이 되고,

나머지 섹션은 랜더링이 안되는 문제가 있었다.

 

console.log로 데이터를 확인해 봤을 땐, 서버에서 정상적으로 가져오고 있는데...

왜 랜더링이 안될까?

이번에도 에러 상황이 아니어서 문제 상황을 유추해야했다.

 

data가 새로 채워진 것을 리액트가 알아채지 못하는 상황인건 분명했다.

 

이런 저런 시도를 해보다가,

useEffect를 이용해서 모든 컴포넌트가 마운트 된 이후에 

query를 한 번 더 refetch하면 되지 않을까? 라는 아이디어로

개선을 해보았는데, 해결이 되었다.

 

음...

옳은 해결책인걸까?