RTK 查询:根据 useGet...查询挂钩参数从列表中获取一个元素

RTK Query: Get one element from list depending on useGet...Query hook argument

我像这样(在 createAPI 中)使用 RTK 查询在外部 api 中获取文章列表:

getArticles: builder.query<{ data: ArticleDTO[] }, null>({
   query: () => "/api/v1/articles",
}),

效果很好,但现在我需要获取一篇文章,但我没有端点来获取一篇文章。 我正在考虑对列表中的 return 一个元素使用 RTK 查询 transformResponse,但我无法访问给定的查询参数,所以我不知道该怎么做!

不要犹豫,要求精确!

我宁愿在你使用挂钩时这样做

const result = useGetArticlesQuery(undefined, {
  selectFromResult: result => ({ ...result, data: result.data?.some.thing })
})

当然你也可以将其抽象为自定义挂钩。

这样,您就不会多次发出相同的请求来获取您的价值。