#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