Запрос RTK: Получите один элемент из списка в зависимости от способа использования…Аргумент крючка запроса

#typescript #api #redux #redux-toolkit #rtk-query

Вопрос:

Я получаю список статей во внешнем api, используя RTK-запрос, например (в createAPI) :

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

Это отлично работает, но теперь мне нужно получить одну-единственную статью, и у меня нет конечных точек для получения одной статьи.
Я думал использовать запрос RTK transformResponse для возврата одного элемента из списка, но я не могу получить доступ к заданному аргументу запроса, поэтому я не знаю, как это сделать !

Не стесняйтесь просить о точности !

Ответ №1:

Я бы предпочел сделать это, когда вы используете крючок

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

Конечно, вы также можете абстрагировать это в пользовательский крючок.

Таким образом, вы не будете делать один и тот же запрос несколько раз, чтобы получить свою ценность.

Комментарии:

1. Кажется, здорово, я попробую !

2. Это, кажется, хороший ответ. Более подробная информация здесь : redux-toolkit.js.org/rtk-query/usage/…

3. Это также объясняется как часть руководства по основам Redux в одной из глав запросов RTK. Настоятельно рекомендую прочитать, начиная здесь для RTKQ: redux.js.org/tutorials/essentials/part-7-rtk-query-basics