[英]Return function from inside custom hook
我有以下自定义钩子;
export default function useFetch(url) {
const [response, setResponse] = useState();
useEffect(() => {
const fetchresponse = async () => {
// code to fetch response from api
}
fetchresponse();
}, [url]);
return [response];
}
虽然以上从我的功能组件开始就可以正常工作,但我想让它可重用并从我的主要组件中的其他地方调用它们(例如按钮单击),即在按钮单击时点击 api。 因此,我想返回一个可执行的 function,它可以在点击按钮时调用。
我该怎么做,并考虑到我的自定义钩子中有一个 useEffect ?
只需在useEffect
挂钩外定义 function 即可。
然后它将在 scope 中返回。
function useFetch(url) {
const [response, setResponse] = useState();
const fetchresponse = async () => {
// code to fetch response from api
}
useEffect(() => {
fetchresponse();
}, [url]);
return [response, fetchresponse];
}
可以选择将 function 包装在useCallback
中,这样它就不会在每次渲染时重新定义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.