import {connect} from 'react-redux'
import {bindActionCreators} from 'redux';
import {mainMenuClickCreator} from "@/redux/main-menu";
//最上引入mainMenuClickCreator.js
//调用: <a onClick={() => props.onMenuClick("my")} href="">我的</a>
const mapStateToProps = (state) => {
return {
currentRoute: state.Router.currentRoute.path,
selectedKey: getSelectedKey(state.Router.currentRoute.path || '/')
};
};
const mapDispatchToProps = (dispatch) => {
return {
onMenuClick: bindActionCreators(mainMenuClickCreator, dispatch),
};
};
export default connect(mapStateToProps, mapDispatchToProps)(DesktopNavbar);
mainMenuClickCreator.js
export const mainMenuClickCreator = (currentMenu) => {
return {type: 'MENU_CLICK', payload: currentMenu};
};
const initState = {
currentMenu: "home",
};
const reducer = (state = initState, action = {}) => {
switch (action.type) {
case 'MENU_CLICK':
return {...state, currentMenu: action.payload};
default:
return state;
}
};
export default {initState, reducer};
import {createStore, combineReducers} from 'redux';
import Sidebar from "./sidebar";
import Router from "./router";
import MainMenu from "./main-menu";
const initState = {
Sidebar: Sidebar.initState,
Router:Router.initState,
MainMenu:MainMenu.initState,
};
const reducers = {
Sidebar: Sidebar.reducer,
Router:Router.reducer,
MainMenu:MainMenu.reducer,
};
const store = createStore(combineReducers(reducers), initState);
export default store;