簡體   English   中英

如何在執行之前檢查 react-query 查詢?

[英]How can I check the react-query queries before execute?

例如,我有這個查詢來獲取一個列表:

const list = useQuery('list', fetcher);

但是我需要在 react-query 執行之前進行預檢查 function 之類的東西,我的意思是這樣的:

const appQueryClient = new QueryClient({
  defaultOptions: {
    queries: {
      checkSomethingBeforeExecute: () => {
        if (itShouldExecute) {
          return true; // start fetching
        } else {
          return false; // don't fetch and abort query
        }
      }
    },
  },
});

事實上,那個checkSomethingBeforeExecute是我的想法......但我正在尋找任何選項或技巧來實現類似的東西。 如果您還記得的話,有一個select選項可以在提取后轉換數據,但是在從提取器 function 開始之前,我需要一些東西來確定查詢執行。

謝謝

如果您的查詢尚未准備好執行,則enabled的選項就是您要查找的內容:

https://react-query.tanstack.com/guides/dependent-queries

如果您想“不獲取”和“中止”查詢(不確定此處中止是什么意思),您可以從您的 queryFn 返回一個被拒絕的 Promise:

useQuery(key, () => {
  if (itShouldExecute) {
    return axios.get(...)
  }
  return Promise.reject(new Error("something error"))
})

請注意,這會將查詢置於錯誤 state 並可能觸發重試。 啟用的選項根本不會運行 queryFn 並將您的查詢放入idle state。 我認為這是兩個可用的選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM