Создайте еще одно действие в том же файле или любом другом файле, который вам нужен
export const toggleNav = () => dispatch => {
dispatch({
type: 'TOGGLE_NAV',
})
}
и редуктор, например
export default (state = false, action) => {
switch (action.type) {
case 'TOGGLE_NAV':
return !state;
default:
return state;
}
}
, добавьте его в ваш комбайн с ключом navStatus
и обновитеmapDispatchToProps, подобный следующему
const mapDispatchToProps = dispatch => ({
simpleAction: () => dispatch(simpleAction()),
toggleNav: () => dispatch(toggleNav()),
})
, добавьте это действие к событию onClick * NavbarToggler
(onClick={this.props.toggleNav}
) и установите его для пропуска isOpen (isOpen={this.props.navStatus}
) компонента Collapse
.
Map Dispatch To Props
mapDispatchToProps - это функция, ее имя может быть любым, но для удобства чтения мы называем ее mapDispatchToProps
, у нее есть параметр dispatch
, если вы хотите получить доступ к действию внутрикомпонент в качестве подпорки, вы должны следовать этому синтаксису, или вы можете просто использовать следующий синтаксис
export default connect(mapStateToProps, { simpleAction, toggleNav })(App);
//or
export default connect(mapStateToProps, {
simpleAction: simpleAction,
toggleNav: toggleNav,
})(App);
act-redux проверит, является ли mapDispatchToProps действием или объектом, если значение является объектом, то response-redux будет выполнятьдиспетчерские операции itslef.