Вызов при успешном выполнении пользовательских перехватов useQuery внутри компонентов React

#javascript #reactjs #callback #react-hooks

#javascript #reactjs #обратный вызов #реагирующие перехваты

Вопрос:

У меня есть пользовательский хук в отдельной папке, который является хуком useQuery.

 export default function useFetchProfile(userId) {
  console.log("fetching profile");
  return useQuery(`profileInfo`, () => {
    return new Promise(async (resolve, reject) => {
      try {
xxxxxxxxx

}
 

Я использую этот перехват внутри компонента react и вызываю функцию onSuccess следующим образом.

 const {
    data: profileUser,
    isLoading: isLoadingUser,
    refetch: refetchUser,
  } = useFetchProfile(props.match.params.userId, {
    onSuccess: (data) => {
      console.log("success");
    },
    onError: (err) => {},
  });
 

onSuccess не вызывается. Однако, если я вызываю onSuccess внутри папки hook, это работает.
Мне нужно вызвать onSucess внутри самого компонента.
Есть идеи, что не так с кодом?

Ответ №1:

На самом деле вы не передаете объект конфигурации в useQuery :

 // add config object to custom hook
export default function useFetchProfile(userId, config) {
  return useQuery(`profileInfo`, () => {
    return new Promise(async (resolve, reject) => {
      // use config.onSuccess / config.onError
    });
  });
}