OlamideO
Convex Community17mo ago
7 replies
Olamide

How do I skip queries when using convex with tanstack query.

I am passing a conditional boardId but only want the query to run if and only if the boardId is present.

I have tried all these but none of them work:

import { convexQuery, useConvexMutation } from '@convex-dev/react-query';
import { useQuery, useMutation, skipToken } from '@tanstack/react-query';

// Trial one
export const useGetBoardById = (id?: Id<'boards'>) => {
  return useQuery(
    convexQuery(api.frontend.boards.getBoardById, id ? { id } : 'skip'),
  );
};

// Trial two.

export const useGetBoardById = (id?: Id<'boards'>) => {
  return useQuery({
    queryFn: id
      ? convexQuery(api.frontend.boards.getBoardById, { id }).queryFn
      : skipToken,
    queryKey: convexQuery(api.frontend.boards.getBoardById, { id: id! })
      .queryKey,
    staleTime: convexQuery(api.frontend.boards.getBoardById, { id: id! })
      .staleTime,
    enabled: !!id,
  });
};


//Trial three
export const useGetBoardById = (id?: Id<'boards'>) => {
  return useQuery({
 ...convexQuery(api.frontend.boards.getBoardById, { id: id! }),
    enabled: !!id,
  });
};


Thank you in advance
Was this page helpful?