我有自定義提取鉤子,它使用useQuery- 來自 react-query。如何根據boolean我提供的道具防止獲取/重新獲取。目前我正在使用,{ enabled: allowedToFetch }但這并不能阻止我在使用refetchreact-query 的方法時獲取。
uj5u.com熱心網友回復:
根據設計,refetch從useQuery執行無條件獲取甚至繞過回傳enabled。
這在這里有很好的記錄:https : //react-query.tanstack.com/guides/disabling-queries
這是必要的,這樣您就可以通過設定enabled: false和使用來選擇退出智能重新獲取并進入“手動”模式refetch()。
queryClient.refetchQueries和queryClient.invalidateQueries尊重enabled,就像所有的智能重新獲取一樣。
問題是:為什么您在呼叫refetch但不希望它實際重新獲取的地方有一個禁用的查詢?用例是什么?
如果條件是:enabled: allowedToFetch,我會:
.) 在相同的條件下包裝 refetch 呼叫:
if (allowedToFetch) {
refetch()
}
.) 或使用本地狀態來驅動查詢(首選解決方案):
const [allowedToFetch, setAllowedToFetch] = useState(false)
useQuery(key, fn, { enabled: allowedToFetch })
現在你需要做的就是呼叫:
setAllowedToFetch(true)
這將啟用查詢,react-query 將完成剩下的作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/408531.html
標籤:
