[英]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.