Встречается на собеседованиях • сегодня

Как происходит валидация данных в RTK Query

RTK Query предоставляет встроенные механизмы валидации через transformResponse и providesTags/invalidatesTags.

  1. transformResponse — позволяет модифицировать или валидировать данные после получения ответа от сервера:
ts
getUsers: build.query({
  query: () => 'users',
  transformResponse: (response) => {
    if (!Array.isArray(response)) throw new Error('Invalid data format');
    return response.filter(user => user.isActive);
  }
})
  1. Теги (providesTags/invalidatesTags) — для контроля актуальности кэша. Например, если данные устарели:
ts
providesTags: (result) => 
  result ? [...result.map(({ id }) => ({ type: 'User', id })), 'User'] : ['User']
  1. Валидация на уровне мутаций — через onQueryStarted в endpoints:
ts
async onQueryStarted(arg, { dispatch, queryFulfilled }) {
  try {
    await queryFulfilled;
  } catch (err) {
    console.error('Validation failed:', err);
  }
}

RTK Query не включает встроенные схемы валидации (как Zod или Yup), но легко интегрируется с ними через transformResponse.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы