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

问题描述 投票:0回答:1

假设我们需要先通过发布请求获取签名,然后在另一个查询(获取请求)中将其用作自定义查询

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
  );

但是我收到这个错误:

Promise 类型不存在属性“数据”<{ data: UseQueryHookResult,

提前致谢

reactjs redux rtk-query rtk
1个回答
0
投票

您的突变将在每次渲染时执行,并且您的

getSignature
函数将返回一个承诺。

您实际上不需要对 POST 请求进行更改 - 请改用查询。

  const res = useGetSignatureKeyQuery();
  const data = useFetchDataQuery(arg, {
    skip: !res.data?.attributes.signature,
  });
© www.soinside.com 2019 - 2024. All rights reserved.