当refetchCompanies被触发时,我希望将isLoadingCompanies状态设置为true,以便此组件将重新呈现。我只希望在isLoadingCompanies为true时呈现组件,而不是isFetchingCompanies为true时。
我的目标:
const {
isLoading: isLoadingCompanies,
isFetching: isFetchingCompanies,
data: dataCompanies,
refetch: refetchCompanies
} = useQuery(
"queryCompanies",
() => companySearchQuery(currentPage, searchTerm, token)
)
组件:
<div>
{(!isLoadingCompanies) && companies?.map((company, index) => (
<h3>{company?.name}</h3>
))}
{isLoadingCompanies && <LoadingDataSpinner/>}
</div>
1条答案
按热度按时间waxmsbnn1#
当refetch被触发时,如何在React Query中将isLoading状态更改为true?
答案很简单:你不能。如果一个查询正在获取数据并且没有数据,那么它将处于
loading
状态。所以,在重新获取数据的过程中,如果你已经有了数据,那么你的查询将不会处于loading
状态。要显示后台重新获取的加载微调器,您可以查看从
useQuery
返回的isFetching
值,无论是第一次获取还是重新获取,只要发生任何获取,该值都将是true
。您也可以使用isRefetching
只检查是否发生重新获取。