@bernex

Как получить доступ к всему store из reducer?

Использовать один root-reducer не правильно по идеологии. Надо разбивать на несколько.

Как я понял на каждый "ключ" state должен быть редюсер.

Например у меня в state есть элементы с ключами: users(у каждого есть tags массив с идами тэгов), tags, selectedUserId

users и tags - два редюсера разных и один не знаю о существовании друг друга.

Хорошо, но если мне надо получить что за тэг у пользователя?

Если мне надо это сделать, у меня вообще не главного редюсера, только по отдельным полям, я не могу обработать действие по всем данным, т.к. combineReducers не позволяет сделать еще и главный.

Редюсер для selectedUserId отдельный, сразу писать выбранного пользователя, разве не надо проверить пользователя на существование в users?

Или это такой концепт и надо следовать, т.к. можно "навелосипедить", испортить и себе навредить из-за того что в голове другая привычка, где классы и скоупы и всегда можно получить доступ к любым данным.
  • Вопрос задан
  • 779 просмотров
Пригласить эксперта
Ответы на вопрос 2
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
- combineReducers можно использовать не только на корневом уровне.
- попробуйте не заморачиваться "правильно / не правильно", а просто делать как вам удобно, и если начинают возникать трудности - переделывать.

P.S. круто про редьюсеры рассказано во втором туториале от Дэна (создателя redux). Так же можно и первый посмотреть, если еще не смотрели (оба на английском, но речь понятная + к каждому видео есть транскрипция (текст))
Ответ написан
Комментировать
@edk55
Мне не понятно, зачем из одного редьюсера Вам необходим доступ в другой?
В контейнер через connect получите список всех тегов, прогоните по id'шкам тегов у юзера и отобразите их.
После получения всех юзеров, можно вызвать action creator (selectUser), которому вы передадите id выбранного пользователя и запишите ID(!!!) в store.
Для вывода "выбранного пользователя", в контейнер через connect подключаете список всех юзеров, и выводите нужного юзера по ID.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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