我有类似于的组件树
<App>
<Loader show={...}/>
<Form>
<input name="val" />
<input type="submit" />
</Form>
<Data input={...}>
Data is {here is data fetched for props.input}
</Data>
</App>
我在Data
组件中使用来自react-query
的钩子useQuery
来获取输入数据,它可以工作,但我可以访问Data
组件中的isLoading
属性,我希望有一个全局微调器,它将在任何数据请求期间显示。有可能用react-query
来做吗?
我想过在Suspense
中封装App
,并将Loader
设置为回退,并在useQuery
调用中启用suspense
,但也许还有其他方法可以做到这一点?
在isLoading
旁边,useQuery
还返回一个isFetching
布尔值,每当查询请求"在飞行中"时,该值都将为真,包括后台更新(当您还没有数据时,isLoading
仅在"初始"加载时为真(。
如果您想要一个全局加载微调器,还有useIsFetching
钩子,它将返回当前正在获取的查询量。请参阅:https://react-query.tanstack.com/reference/useIsFetching