RTK 查询中的链 2 查询
Chain 2 queries in RTK Query
如果第 2 个查询需要第 1 个返回的参数,链接查询的正确方法是什么?
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
如果第 2 个查询需要第 1 个返回的参数,链接查询的正确方法是什么?
const { data: user } = useGetUserQuery();
用户对象包含一个用于运行
的IDconst { 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