【问题标题】:Redux Toolkit RTK Query - Difference between useGetDomainsQuery VS api.endpoints.getDomains.initiate(args)Redux Toolkit RTK Query - useGetDomainsQuery VS api.endpoints.getDomains.initiate(args) 的区别
【发布时间】:2022-08-18 12:53:49
【问题描述】:

我想使用一些参数进行 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);

此实现始终未初始化并返回空数组用户:[]

    标签: javascript reactjs react-redux rtk-query reselect


    【解决方案1】:

    您使用api.endpoints.getDomains.select() 创建的选择器将为您提供调用initiate()initiate(undefined) 但不是initiate(something) 的缓存条目 - 为此您必须使用select(something)

    【讨论】:

      猜你喜欢
      • 2023-01-15
      • 2022-09-25
      • 2021-09-10
      • 2022-11-24
      • 2021-11-06
      • 2022-07-12
      • 2023-02-21
      • 2022-08-02
      • 2021-02-06
      相关资源
      最近更新 更多