RTK Query中的 Chain 2查询



如果第二个查询需要由第一个返回的参数,那么链查询的正确方法是什么?

const { data: user } = useGetUserQuery();

用户对象包含一个用于运行

的ID
const { data: userBio} = useGetUserBioQuery(user.id);

我如何确保第二个只在第一个完成后运行?

您可以使用skip选项:

const { data: user, isFulfilled: userFulfilled } = useGetUserQuery();
const { data: userBio} = useGetUserBioQuery(user.id, { skip: !userFulfilled });

skipToken:

const { data: user, isFulfilled: userFulfilled } = useGetUserQuery();
const { data: userBio} = useGetUserBioQuery(userFulfilled ? user.id : skipToken);

RTK查询文档的用法部分还提供了另一个关于如何将多个请求与一个查询组合在一起的示例,我发现对于该用例非常有用:https://redux-toolkit.js.org/rtk-query/usage/customizing-queries performing-multiple-requests-with-a-single-query

我们可以使用skip标志来确定是否有用户id

const { data: user } = useGetUserQuery();
const { data: userBio} = useGetUserBioQuery(user.id, { skip: !user.id });