如果第二个查询需要第一个查询返回的参数,那么链接查询的正确方法是什么?
const { data: user } = useGetUserQuery();
用户对象包含用于运行的ID
const { data: userBio} = useGetUserBioQuery(user.id);
如何确保第二个只在第一个完成后运行?
pnwntuvh1#
可以使用skip选项:
skip
const { data: user, isFulfilled: userFulfilled } = useGetUserQuery(); const { data: userBio} = useGetUserBioQuery(user.id, { skip: !userFulfilled });
或者skipToken:
skipToken
const { data: user, isFulfilled: userFulfilled } = useGetUserQuery(); const { data: userBio} = useGetUserBioQuery(userFulfilled ? user.id : skipToken);
ruyhziif2#
RTK查询文档的用法部分还提供了另一个示例,说明如何将多个请求与一个查询组合在一起,我发现该示例对该用例非常有用:https://redux-toolkit.js.org/rtk-query/usage/customizing-queries#performing-multiple-requests-with-a-single-query
lnlaulya3#
我们可以使用skip标志来确保是否存在用户id
const { data: user } = useGetUserQuery(); const { data: userBio} = useGetUserBioQuery(user.id, { skip: !user.id });
3条答案
按热度按时间pnwntuvh1#
可以使用
skip
选项:或者
skipToken
:ruyhziif2#
RTK查询文档的用法部分还提供了另一个示例,说明如何将多个请求与一个查询组合在一起,我发现该示例对该用例非常有用:https://redux-toolkit.js.org/rtk-query/usage/customizing-queries#performing-multiple-requests-with-a-single-query
lnlaulya3#
我们可以使用
skip
标志来确保是否存在用户id