繁体   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