【发布时间】:2019-10-10 09:09:40
【问题描述】:
我正在开发一个使用 React 和 react-hooks 的项目。我试图在后端返回响应后调用一个方法。目前我正在使用 Axios-hooks 库进行 React 调用:
export const useDataFromServer = (dataObjectId) => {
return useAxios(
{
url: `/data/${dataObjectId}`,
method: 'GET',
},
{
manual: manual,
}
);
}
我正在尝试实现自己的钩子来包装 useAxios 调用,因为我无法从 useAxios 文档中找到任何方法:https://www.npmjs.com/package/axios-hooks:
export function useAxiosWithResponseCallback(config, options, callback) {
const [isCallbackCalled, setIsCallbackCalled] = useState(false);
const [axiosState, execute] = useAxios(config, options);
useEffect(()=>{
if (axiosState.loading) {
setIsCallbackCalled(false);
} else {
if (!isCallbackCalled) {
if (callback && typeof callback == 'function') {
callback([axiosState, execute]);
}
setIsCallbackCalled(true);
}
}
}, [
axiosState,
isCallbackCalled,
callback,
]);
return [
axiosState,
execute,
];
}
但我不确定它是否适用于所有情况。
非常感谢任何帮助!
【问题讨论】:
标签: javascript reactjs axios react-hooks