Blog>
Snippets

Updating Data with TanStack Router

Provide an example of updating existing data using TanStack Router, illustrating the use of dynamic routing and a 'patch' request.
import { useMutation, useQueryClient } from '@tanstack/react-query';
import axios from 'axios';
Imports necessary hooks from TanStack Query and axios for making patch requests.
const updateUserData = async (userId, userData) => {
  const { data } = await axios.patch(`/api/users/${userId}`, userData);
  return data;
};
Defines an asynchronous function to send a PATCH request to the server to update user data.
const useUpdateUser = () => {
  const queryClient = useQueryClient();
  return useMutation(updateUserData, {
    onSuccess: () => {
      // Invalidate and refetch
      queryClient.invalidateQueries(['users']);
    },
  });
};
Defines a custom hook using useMutation to call the updateUserData function upon mutation. It uses onSuccess to invalidate and refetch queries related to users, ensuring the local data is up-to-date.