Reactjs 如何解决React自定义钩子类型错误(0,\默认值)不是函数?

Reactjs 如何解决React自定义钩子类型错误(0,\默认值)不是函数?,reactjs,react-hooks,react-query,Reactjs,React Hooks,React Query,我想为使用React Query获取数据设置一个自定义钩子,以便轻松模拟测试返回值 这是我的useFetchHook自定义钩子 export const useFetchData = (idQuery) => { const delay = () => { return new Promise((resolve) => { setTimeout(() => { resolve(); }, 500); });

我想为使用React Query获取数据设置一个自定义钩子,以便轻松模拟测试返回值

这是我的
useFetchHook
自定义钩子

export const useFetchData = (idQuery) => {
  const delay = () => {
    return new Promise((resolve) => {
      setTimeout(() => {
        resolve();
      }, 500);
    });
  };

  const handleRickAndMortyFetch = () => {
    return delay()
      .then(() => axios(`https://rickandmortyapi.com/api/character/${idQuery}`))
      .then((res) => res.data);
  };

  const { data, error, isLoading } = useQuery(
    ["rickandmorty", idQuery],
    handleRickAndMortyFetch,
    {
      cacheTime: 1000 * 60 * 60 * 24,
      enabled: false || idQuery !== 0,
      onError: (error) => console.log(error),
      retry: false,
      refetchOnWindowFocus: true,
      staleTime: 1000 * 60 * 60 * 24,
      useErrorBoundary: true
    }
  );

  return { data, error, isLoading };
};
但是,我收到的
类型错误(0,\u useFetchData2.default)不是一个函数
,它指向
中的这一行代码

这些是我试图解决这个问题的尝试

  • 尝试不同的导出方法<代码>导出默认函数useFetchData(idQuery)或
    导出常量useFetchData=(idQuery)=>{}
  • 确保自定义挂钩正在返回值
    return{data,error,isload}
  • 确保调用自定义挂钩并传递参数<代码>使用fetchdata(idQuery)
  • 解构
    useFetchHook
    作为返回对象的对象。
    内部
    useFetchHook
    return{data,error,isload}
    内部
    const{data,error,isLoading}=useFetchData(idQuery)
  • React版本是17.0
请建议如何解决。

因为您“命名导出”
使用fetchdata
而不是默认导出,所以更改为

import useFetchData from "../../hooks/useFetchData";
在Home.jsx中

import { useFetchData } from "../../hooks/useFetchData";

或者将导出const useFetchData更改为导出默认useFetchData,谢谢!
import { useFetchData } from "../../hooks/useFetchData";