26-01 강의 : 아폴로 캐시 질문입니다.

아폴로 캐시 데이터를 직접 수정하고 싶어서 질문 드립니다.
포인트 충전 시 변경된 포인트를 refetchQueries 사용하지 않고, 캐시를 수정해서 화면에 보여주려 하는데요.
두번째 사진에서 캐시에 저장된 fetchUserLoggedIn.userPoint.amount를 직접 수정하고 싶은데 어떻게 수정해야 할지 모르겠습니다.
강의에서 cache.modify를 이용해 배열에 아이템 목록을 추가하거나 삭제하는 예시만 알려주셔서요.
캐시 데이터를 직접 수정하는 방법이 있을지 여쭙고 싶습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
아폴로 캐시 데이터를 직접 수정하고자 하신다면 cache.writeQuery를 사용하여 캐시를 수정할 수 있어요. writeQuery 메서드는 쿼리와 함께 변경된 데이터를 전달하여 캐시를 업데이트하는 역할을 해요.
writeQuery 메서드를 사용하는 방법은 다음과 같아요.
import { gql } from "@apollo/client";
// 수정할 데이터를 가져오는 쿼리
const GET_USER_QUERY = gql`
query GetUser {
userLoggedIn {
id
point {
amount
}
}
}
`;
// cache.writeQuery를 사용하여 데이터 수정
cache.writeQuery({
query: GET_USER_QUERY,
data: {
userLoggedIn: {
id: '사용자 ID',
point: {
amount: '수정할 포인트 값'
}
}
}
});
위의 코드에서 GET_USER_QUERY는 수정할 데이터를 가져오는 쿼리입니다. cache.writeQuery 메서드를 사용하여 GET_USER_QUERY와 함께 업데이트할 데이터를 전달하면 캐시가 수정되어 화면에 보여집니다.
캐시 데이터를 직접 수정하여 화면에 보여주는 방법이에요. 하지만 이렇게 직접 캐시를 수정하는 것은 조심해야 합니다. 캐시를 잘못 수정하면 예기치 않은 동작이 발생할 수 있으니 신중하게 사용하셔야 합니다.
추가적인 질문이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!
fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다
0
40
1
댓글 기능 구현 중 질문드립니다.
0
67
1
쿠폰코드 발급
0
140
2
example 서버 플레이그라운드, API 접속 모두 안됩니다.
0
87
2
문의드립니다!! ㅠㅠ
0
104
2
graphql 백엔드 서버가 포폴용 빼곤 접속이 안됩니다.
0
78
2
_app.js 작성 이후로 에러가 발생하네요
0
95
2
학습자료
0
71
2
학습자료가 안열립니다.
0
51
2
플레이 그라운드 퀴즈 문제 질문이 있습니다.
0
61
0
기존강의 구매자, 업데이트 끝인가요?
0
111
3
업데이트 버전 수강
0
89
2
완벽한 프론트엔드
0
136
2
나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.
0
84
1
graphql 접속이 안됩니다.
0
101
2
const, let 사용 질문 드립니다.
0
71
2
싸이월드 만들기 1탄 피드백 부탁드립니다.
0
122
2
회원가입 과제 피드백 부탁드립니다.
0
81
2
styled.span / styled.input "CSS 자동완성"
0
47
1
쿠폰 발급 관련
0
167
2
서버 502 error
0
247
2
쿠폰 다시 부탁드려도 될가여?
0
140
2
a태그 패딩했을때 왜 크기가 줄어들지 않고 늘어나나요
0
185
2
2분 44초 질문
0
132
3





