작성 또는 업데이트시 트리거되는 upsert 쿼리가 있습니다. 업데이트시 Apollo는 결과를 캐시에 통합하지만 생성시에는 생성하지 않습니다. 여기 Apollo 클라이언트 : Upsert 변형은 업데이트시에만 캐시를 수정하지만 생성시에는 수정하지 않습니다.
쿼리입니다 :export const UPSERT_NOTE_MUTATION = gql`
mutation upsertNote($id: ID, $body: String) {
upsertNote(id: $id, body: $body) {
id
body
}
}`
내 클라이언트 :
const graphqlClient = new ApolloClient({
networkInterface,
reduxRootSelector: 'apiStore',
dataIdFromObject: ({ id }) => id
});
서버에서 응답은 동일하다 : 두 id
및 body
가 반환되지만 아폴로는에 새로운 ID를 추가하지 않습니다 data
캐시 개체가 자동으로.
후속 가져 오기를 트리거하지 않고 Apollo가 자동으로 data
에 새 객체를 추가하도록 할 수 있습니까? 여기

UPDATE
이 문서에 따르면, 기능 updateQueries
은 내 목록에 새 요소를 밀어 수 있도록되어있다 내 원본 페치 쿼리를 다시 트리거하지 않아도됩니다.
함수가 실행되지만 함수에서 반환하는 것은 완전히 무시되고 캐시는 수정되지 않습니다.
나는 같은 것을 할 경우에도 :
updateQueries: {
getUserAssets: (previousQueryResult, { mutationResult }) => {
return {};
}
}
아무것도 변경되지 않습니다.
업데이트 # 2
여전히 내 자산 목록을 업데이트 할 수 없습니다. updateQueries
내부
가 여기 내 previousQueryResult
의 모습입니다 :
updateQueries: {
getUserAssets: (previousQueryResult, { mutationResult }) => {
return {
assets: []
.concat(mutationResult.data.upsertAsset)
.concat(previousQueryResult.assets)
}
}
}
그러나 상관없이 내가 돌아 무엇을, 데이터 저장소가 새로 고쳐지지 않습니다 참고로
, 여기 각 asset
은 무엇입니까?
죄송합니다. 업데이트 # 2로 내 질문을 업데이트합니다. 아직도 불행히도 제대로 작동하지 않습니다. –