#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