簡體   English   中英

Redux 工具包 RTK 查詢 - useGetDomainsQuery VS api.endpoints.getDomains.initiate(args) 之間的區別

[英]Redux Toolkit RTK Query - Difference between useGetDomainsQuery VS api.endpoints.getDomains.initiate(args)

我想使用一些參數進行 API 調用,並使用選擇器在我的組件中獲取該值我在下面的實現中獲取數據

const { data, isLoading, isFetching, error } = useGetDomainsQuery({
    search: search || '',
    status: status || '',
    page_number: pageNo,
    page_size: pageRow,
  });

而我沒有在選擇器中獲取數據

dispatch(
    api.endpoints.getDomains.initiate({
      search: search || '',
      status: status || '',
      page_number: pageNo,
      page_size: pageRow,
    }),
  ); 

選擇器:-

export const selectDomainsResult = api.endpoints.getDomains.select();

const selectDomainsData = createSelector(
  selectDomainsResult,
  (domainsResult) => domainsResult.data, 
);


export const {
  selectAll: selectAllDomains,
  selectById: selectDomainById,
  selectIds: selectDomainIds,
} = domainsAdapter.getSelectors(
  (state) =>
     selectDomainsData(state) ?? initialState,
);

並像這樣使用我的選擇器

const domains = useSelector(selectAllDomains);

此實現始終未初始化並返回空數組用戶:[]

您使用api.endpoints.getDomains.select()創建的選擇器將為您提供調用initial( initiate()initiate(undefined)但不是initiate(something)的緩存條目 - 為此您必須使用select(something)

暫無
暫無

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

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