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