@TuxOn
Учусь

Как сформировать зависимые редьюсеры в redux?

Здравствуйте, подскажите какой верный путь для того, чтобы провести следующую схему.

Есть два компонента:
<toolbar />
<content />

toolbar содержит текущую страницу и возможность её изменить через некий <input>.
content содержит контент разбитый постранично. Текущую страницу также можно менять, предположим, посредством скроллинга.

Соответственно при изменении текущей страницы через <toolbar/> - должен отреагировать компонент <content/> и наоборот.

Каждый из блоков может менять параметр activePage. Как правильно выстроить store, редьюсеры и их зависимость в redux?

store = {
   app: {
     activePage: 1,
     toolbar: {
       ...., // некие параметры, относящиеся только к тулбару
       // нужно ли дублировать activePage здесь?
     },
     content: {
       ...,
     }
  }
}


Я вижу вариант - через корневой редьюсер, который будет передавать изменения в дочерние.
case type.SET_ACTIVE_PAGE:
      return {
        ...state,
        activePage: action.activePage,
        toolbar: toolbarReducer(state.toolbar, action),
        content: contentReducer(state.content, action)
      };
      break;
  • Вопрос задан
  • 412 просмотров
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
Так а в чем проблема? Вы же мапите значения из store с помощью mapStateToProps (react-redux package).
Создайте редьюсер для активной страницы и всё.


The shape of the state is up to you: it can be a primitive, an array, an object, or even an Immutable.js data structure
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы