No newPost nao precisamos fazer o refetchQueries pois ja estamos fazendo o update
No newPost nao precisamos fazer o refetchQueries pois ja estamos fazendo o update
Olá, Guilherme! Tudo bem?
Você está correto ao observar que, ao usar o update no useMutation do Apollo Client, muitas vezes não é necessário usar o refetchQueries. O update permite que você atualize manualmente o cache do Apollo após uma mutação, o que pode ser mais eficiente do que refazer a consulta inteira com refetchQueries.
Por exemplo, se você tem uma mutação newPost e deseja adicionar o novo post ao cache sem refazer a consulta, você pode fazer algo assim:
const [newPost] = useMutation(NEW_POST_MUTATION, {
update(cache, { data: { newPost } }) {
const { posts } = cache.readQuery({ query: GET_POSTS });
cache.writeQuery({
query: GET_POSTS,
data: { posts: posts.concat([newPost]) },
});
},
});
Neste exemplo, após a mutação newPost ser executada, o update é chamado, onde lemos a lista atual de posts do cache e adicionamos o novo post a essa lista. Isso atualiza o cache localmente sem a necessidade de refazer a consulta.
Abraços e bons estudos!