혹시 apollo-client v2 에서 v3 마이그레이션 하셨던 분들 중에 local s...
# 질문
a
혹시 apollo-client v2 에서 v3 마이그레이션 하셨던 분들 중에 local state 불러올 때 중첩된 필드때문에 에러겪으신 분 계신가요? v2에선 되던건데 v3에서는 안되네요.. 상세이슈는 여기다 적어놓았습니다 https://github.com/apollographql/apollo-client/issues/7853 관련 정보 아시는 분 댓글주시면 감사드리겠습니다 🙏
h
reactive variable 잘 생성해서 설정 하셨나요?
typePolicies 였나
a
v3에 새로 생긴 리액티브바 말씀이시죵?? 그것과 별개로 기존 v2에서 local state 쿼리하는 것 쓰고 있었는데 그게 v3에서 안먹네요..지금 기냥 귀찮아서 react variables 로 싹 바꾸고 있어요 😥
h
네 방식이 아주 바뀐거에요 reactive vars 로
대신 컴포넌트에서 쓰는 쿼리는 바뀌지 않았습니다
스토어 다루는 방식만 바뀐거로 알아요
이걸 또 reactive vars 를 직접 쓰는걸로 생각하실 수도 있을거같아서,
@client
는 그대로 쓰셔도 되고 local resolvers 가 대체된거에요 예제 참고해보세요 https://github.com/apollographql/ac3-state-management-examples/blob/master/apollo-local-state/src/cache.tsx
a
넴 요건 좀 마음에 드는게 기존에는 graphql 이랑 엮여있어서 쓸데없이 __typename 넣어주고 그랬었는데 아예 분리되어서 좋은거같아요
오 v3에서는 캐쉬도 얼려버렸군요
h
원래 옵션이 있었어요
__typename
?
a
기존에
client.writeData()
로 set 하고
Copy code
export const GET_LOCAL_STATE = gql`
  query {
    isAuthenticated @client
    user @client {
      id
    }
  }
`;
위 쿼리로 조회하는 식으로 사용중이었는데 writeData 로 넣을때나 초기값 세팅할때
__typename
을 항상 적어줘야 됬었거든요 아무래도 graphql response 랑 같이 캐시에 들어가니
근데 뭐 이제 리액티브바를 쓰니 다 과거의 산물이 됐습니다