redux 如何使用上次查询的数据作为RTK查询下一次调用同一查询的参数?

rbl8hiat  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(132)

我从普通redux thunks转换到RTK查询时遇到了一个问题。在第一次查询后,响应包含一个带值的字段(类似于token或cursor),我需要在下一次获取同一查询时将其用作参数,依此类推。对于普通thunks,我只需使用选择器从存储中读取token值,并将其用作参数
类似这样的东西,但它当然会导致错误:

const { data } = useUsersQuery({
  someToken: data.someToken,
});

我如何才能实现它?

更新我用useLazyQuery()解决了这个问题:

const [trigger, { data }] = useLazyUsersQuery();

trigger({
  someToken: data?.someToken,
});

虽然看起来很丑

fafcakar

fafcakar1#

您可以只使用skipTokenskip选项:

const { data } = useUsersQuery({
  someToken: firstResult.data.someToken,
}, {
  skip: !firstResult.isSuccess
});

const { data } = useUsersQuery(firstResult.isSuccess ? {
  someToken: firstResult.data.someToken,
} : skipToken);

相关问题