@chvertkos

Как исправить баг соприкосновения двух Slice в RTK?

Привет, в моем проекте есть 2 Slice: OptionSlice и TicketsReducer. В обоих слайсах я использую асинхронные запросы, и сейчас, по какой-то причине, после выполнения запроса fetchOptions, данные приходящие в массив options добавляются еще и в массив tickets. Не могу отловить причину, по которой это происходит, возможно проблема в компонентах, по этому прикладываю ссылку на github. https://github.com/Chvertko/diplom
P.S Суть в том, что массив, приходящий в options - это города, которые показываются в выпадающем списке Autocomplete,
648056937576f723353976.jpeg
Но помимо этого, так как они , по какой-то причине добавляются и в массив tickets другого редьюсера, они оторбражаются и в компоненте ticketList
648056f64f10d275366616.jpeg
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@slide13
frontend/web-developer
Потому что кое что забыли в addMatcher. Сейчас у вас оба слайса в extraReducers матчатся на все асинхронно возвращаемые через промисы экшены, поэтому данные и записываются в оба слайса Т.е. вам необходимо матчить по название thunk + статус, а не только по статусу, как пример, для option:
вот вы создали async thunk с типом "countries/fetchCountries"
export const fetchCountries = createAsyncThunk(
  'countries/fetchCountries',
...

и в addMatcher будет тогда:
(action) => action.type.endsWith("countries/fetchCountries/pending"),

Ну и везде так поменяйте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы