RTK 查询中的 Chain 2 查询

Ale*_*min 17 javascript reactjs redux react-redux rtk-query

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

const { data: user } = useGetUserQuery();
Run Code Online (Sandbox Code Playgroud)

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

const { data: userBio} = useGetUserBioQuery(user.id);
Run Code Online (Sandbox Code Playgroud)

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

phr*_*hry 19

您可以使用以下skip选项:

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

或者一个skipToken

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

  • SkipToken 方法,但不会解构结果变量。这将保持关联 isFulfilled => 数据不是未定义的 (2认同)

Ben*_*Jey 5

RTK 查询文档的使用部分还提供了另一个示例,介绍如何将多个请求与一个查询结合起来,我发现该示例对于该用例非常有用: https ://redux-toolkit.js.org/rtk-query/usage/定制查询#用单个查询执行多个请求