Browse Source

导航栏切换数据流使用组件state而不是main model

zhuth 7 years ago
parent
commit
8cdf9aba94
2 changed files with 9 additions and 10 deletions
  1. 8 1
      src/components/common/navigator.jsx
  2. 1 9
      src/models/main.js

+ 8 - 1
src/components/common/navigator.jsx

@@ -8,13 +8,15 @@ class Navigator extends React.Component {
     constructor(props) {
         super(props)
         this.state = {
+            currentPage: 'home'
         }
     };
     
 
     render() {
         const { main, dispatch } = this.props;
-        const { currentUser, currentPage } = main;
+        const { currentUser } = main;
+        const { currentPage } = this.state;
 
         const userMenu = currentUser.code ? (
             <Menu>
@@ -49,6 +51,11 @@ class Navigator extends React.Component {
                 <Menu
                     className='navigator-menu'
                     selectedKeys={[currentPage]}
+                    onClick={(item ) => {
+                        this.setState({
+                            currentPage: item.key
+                        });
+                    }}
                     mode="horizontal"
                 >     
                     <Menu.Item className='nav-page' key="home">

+ 1 - 9
src/models/main.js

@@ -22,18 +22,14 @@ export default {
             name,
             role,
         },
-        currentPage: '',
     },
     reducers: {
-        setPage(state, action) {
-            return { ...state, currentPage: action.page || 'home' };
-        },
         setCurrentUser(state, action) {
             const { user } = action;
             return { ...state, currentUser: {
                 code: user.code,
                 account: user.account,
-                // password: user.password,
+                password: user.password,
                 name: user.name,
                 role: user.role
             } };
@@ -91,10 +87,6 @@ export default {
                 duration: 2,
                 maxCount: 3,
             });
-            return history.listen(({ pathname, query }) => {
-                let page = pathname.match(/\/(\w*)/)[1];
-                dispatch({ type: 'setPage', page });
-            })
         }
     }
 };