在 SWR 中,一旦我收到获取结果,我想将它作为道具传递给子组件。钩子定义为:
const fetcher = url => axios.get(url).then(res => res.data);
export default function useTeleworkInfoSWR() {
const { data, error } = useSWR('/teleworkInfo', fetcher);
return {
teleworkInfo: data,
teleworkInfoIsLoading: !error && !data,
teleworkInfoError: error
}
}
在 Home 组件中使用如下:
const {teleworkInfo, teleworkInfoIsLoading, teleworkInfoError} = useTeleworkInfoSWR();
...
return (<>
...
<SomeComponent abc={teleworkInfo} />
</>);
这正在创建某种无限循环,并且 SWR 总是很忙。我是否需要在该子组件中单独调用 SWR 而不是将其作为道具传递?