Reactjs 如何解决React自定义钩子类型错误(0,\默认值)不是函数?
我想为使用React Query获取数据设置一个自定义钩子,以便轻松模拟测试返回值 这是我的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); });
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";