Blog>
Snippets

Manual Cache Manipulation for Testing

Show how to manually manipulate the cache using React Query DevTools for testing purposes, including adding, removing, and modifying cached data.
import { useQueryClient } from 'react-query';

// Function to add data to the cache
const addDataToCache = (queryKey, newData) => {
  const queryClient = useQueryClient();
  queryClient.setQueryData(queryKey, newData);
};
This code imports the useQueryClient hook from react-query and defines a function, addDataToCache, which uses the setQueryData method to manually add data to the cache under a specific queryKey.
import { useQueryClient } from 'react-query';

// Function to remove data from the cache
const removeDataFromCache = (queryKey) => {
  const queryClient = useQueryClient();
  queryClient.removeQueries(queryKey);
};
This snippet shows how to remove data from the cache using the removeQueries method from react-query. It defines a function, removeDataFromCache, which takes a queryKey and removes any queries associated with that key.
import { useQueryClient } from 'react-query';

// Function to update data in the cache
const updateCacheData = (queryKey, updater) => {
  const queryClient = useQueryClient();
  queryClient.setQueryData(queryKey, (oldData) => {
    return updater(oldData);
  });
};
In this code, the useQueryClient hook is used to define a function, updateCacheData, for updating data in the cache. It uses the setQueryData method with an updater function to modify the cached data associated with a specific queryKey.