No newPost nao precisamos fazer o refetchQueries pois ja estamos fazendo o update
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!