RTK Query, как обновить состояние запроса

У меня есть маршрут, по которому я получаю все категории

getAllCategoriesAdmin: builder.query({
       query: () => 'categories/allAdmin',
       providesTags: ['CategoriesAdmin']
    })

Затем я получаю данные о категориях из рефакторинга данных части useGetAllCategoriesAdminQuery.

const { isLoading, isError, data = {} } = useGetAllCategoriesAdminQuery();

Теперь я хочу реализовать поле поиска, в котором я хочу обновить эту часть данных новыми данными, другими словами, когда я создаю новый маршрут.

getAllCategoriesAdminSearch: builder.query({
        query: () => 'categories/allAdminSearch',
        providesTags: ['CategoriesAdmin'],
    })

Есть ли способ, которым я могу повторно обновить часть данных из useGetAllCategoriesAdminQuery, поэтому мне не нужно делать другие данные из useGetAllCategoriesAdminSearchQuery

const { data = {} } = useGetAllCategoriesAdminSearchQuery();

это то, что вы спрашиваете? useGetAllCategoriesAdminSearchQuery({foo: "bar:})

Ericgit 10.02.2023 17:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
2
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не совсем понимаю ваш вопрос, но я предполагаю, что у вас есть API запросов, и вам нужен поисковый запрос для этого API. Я надеюсь, это поможет вам.

есть много способов повторно получить данные:

1: Я думаю, что ваш API должен поддерживать некоторые параметры запроса для таких поисков:

getAllCategoriesAdmin: builder.query({
       query: (searchInput) => `categories/allAdmin/?search=${searchInput}`,
       providesTags: ['CategoriesAdmin']
    })

Запрос RTK создает ключ кеша на основе URL-адреса запроса и параметров, поэтому, если вы измените ввод поиска, он автоматически создаст новый запрос и извлечет данные.

2: другой способ - использовать invalidateTags, например, если у вас есть запрос на изменение, вы можете аннулировать теги в этом случае CategoriesAdmin, и это заставляет RTK очищать кеш для соответствующего запроса и обновлять данные.

3: refetch функция. каждый useHookQuery в RTK имеет функцию повторной выборки, которую вы можете назначить своему событию поиска для повторной выборки новых данных.

const { refetch, isLoading, isError, data = {} } = useGetAllCategoriesAdminQuery();

Другие вопросы по теме