reactjs 使用RTK查询创建自定义查询

mtb9vblg  于 2023-05-22  发布在  React
关注(0)|答案(1)|浏览(163)

让我们假设我们首先需要通过POST请求获取签名,然后在另一个查询(GET请求)中使用它作为自定义查询

export const useSignatureCustomQuery = (arg: string) => {
 
  const [getSignature] = useGetSignatureKeyMutation();
  const signature = getSignature({
    url: `${REST_END_POINTS.GET_SIGNATURE}`,
  })
    .unwrap()
    .then((res) => res.data.attributes.signature);

  const data = useFetchDataQuery(arg, {
    skip: !signature ,
  });

  return { data };
};

但当我想使用自定义查询如下

const { data: query } = useSignatureCustomQuery(
    REST_END_POINTS.POSITION_INFORMATION,
    !!positions
  );

但我收到这个错误:
属性“data”在类型“Promise<{ data:UseQueryHookResult<QueryDefinition<string,BaseQueryFn<string| FetchArgs,unknown,FetchBaseQueryError,{} & RetryOptions,FetchBaseQueryMeta>,
提前致谢

pqwbnv8z

pqwbnv8z1#

你的mutation将在每次render上执行,你的getSignature函数将返回一个promise。
对于POST请求,您实际上不需要一个变化-使用查询代替。

const res = useGetSignatureKeyQuery();
  const data = useFetchDataQuery(arg, {
    skip: !res.data?.attributes.signature,
  });

相关问题