1
resposta

OBS em 2 coisas mas agora sao 3

Na ultima aula, o readyQuery nao recebe data o professor colocou os dados do wirteQuery misturado com o read codigo certo

try {
        const existingCategoryFeed = cache.readQuery({
          query: GET_FEED_BY_CATEGORY,
          variables: { category: deleteFeed.category },
        });
        if(existingCategoryFeed) {
          cache.writeQuery({
            query: GET_FEED_BY_CATEGORY,
            variables: { category: deleteFeed.category },
            data: {
              allFeeds: existingCategoryFeed.allFeeds.filter( post => post.id !== deleteFeed.id )
            }
          });
        }
      } catch (error) {
        console.log(error);
      }
1 resposta

Oi Guilherme! Tudo bem?

Pelo que você descreveu, parece que há uma confusão entre o uso do readQuery e writeQuery no código apresentado. Vamos dar uma olhada no que cada parte faz e como elas se conectam.

  1. readQuery: Esta função é usada para ler dados do cache local do Apollo Client. No seu caso, ela está sendo usada para buscar o feed existente de uma categoria específica.

  2. writeQuery: Esta função é utilizada para escrever ou atualizar dados no cache local. No seu exemplo, após ler os dados existentes, você está atualizando o cache para remover um feed específico.

No trecho de código que você compartilhou, o fluxo parece estar correto. Primeiro, você lê os dados existentes para uma categoria específica e, em seguida, escreve de volta no cache, removendo o feed que foi deletado. Isso é feito utilizando o método filter para criar uma nova lista de feeds que exclui o feed deletado.

Se o instrutor mencionou que o readyQuery não recebe dados, pode ter sido um erro de comunicação, já que o correto é readQuery, que realmente não recebe dados, mas sim retorna dados do cache. Já o writeQuery é que recebe os dados que você deseja armazenar no cache.

Se você ainda está enfrentando problemas, verifique se a variável deleteFeed está corretamente definida e se contém as propriedades category e id que você está utilizando. Além disso, certifique-se de que a query GET_FEED_BY_CATEGORY está corretamente configurada para retornar os dados esperados.

Espero ter ajudado. Conte com nosso apoio e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado