Проблема с React / redux combineReducers

#reactjs #redux #redux-reducers

#reactjs #redux #redux-редукторы

Вопрос:

Я пытаюсь объединить два редуктора с помощью redux: редукторы увеличения и уменьшения.

В моем store.js файл:

С этой строкой import reducer from "./reducers/increment"; работает кнопка увеличения.

С этой строкой import reducer from "./reducers/decrement"; работает кнопка уменьшения.

С этой строкой import reducer from "./reducers/index"; счетчик даже не отображается.

Мой код приведен здесь.

Что я делаю не так, пожалуйста?

Что, если два состояния редуктора имеют одинаковое значение счетчика? Что является источником истины, если значение counter изменено?

Спасибо за вашу помощь.

Ответ №1:

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

Вы должны сделать это, потому что в вашей mapStateToProps функции внутри SiblingTwo.js вам нужно сделать:

 const mapStateToProps = (state, ownProps) => ({
    counter: state.increment.counter
});
  

Это либо state.increment.counter или state.decrement.counter , поэтому имеет смысл только изначально объединить редукторы в один и вызвать state.counter.counter .

Ваш текущий код не работает, потому что вы неправильно вызываете counter: state.counter