UNPKG

2.39 kBJavaScriptView Raw
1import React from 'react';
2import { Layout, Menu, Icon } from 'antd';
3import {
4 BrowserRouter as Router,
5 Route,
6 HashRouter,
7 Redirect,
8 Link
9} from 'react-router-dom';
10
11const { SubMenu } = Menu;
12const { Sider } = Layout;
13
14export default class SiderView extends React.Component {
15
16 constructor(props) {
17 super(props);
18 }
19
20 $renderItem(db) {
21
22 const{md, config} = db;
23
24 const res = [];
25
26 const category = config.category.slice();
27
28
29 const renderMenuItem = (list, cg) => {
30 const items = list.map((item, i) => {
31 const to = `/page/${item.page}`;
32 return(
33 <Menu.Item key={item.page}>
34 <Link to={to}>
35 {item.page}
36 </Link>
37 </Menu.Item>
38 )
39 });
40
41 return items;
42 };
43
44 // 如果md 文件没有设置 category 直接渲染 menuItem;
45 if (md.default && md.default.length) {
46 res.push(renderMenuItem(md.default));
47 }
48
49 category.forEach((cg, i) => {
50 const list = md[cg];
51 const items = renderMenuItem(list, cg);
52
53 res.push((
54 <SubMenu key={cg + '-key'} title={cg}>
55 {items}
56 </SubMenu>
57 ));
58 });
59
60 return res;
61 }
62
63 componentDidMount() {
64 // const{md, config} =this.props.db;
65 // const cg = config.category[0];
66 // if(cg) PubSub.publish('SET_PAGE', md[cg][0].page);
67 console.log(1111)
68 }
69
70 render() {
71 const menuItems = this.$renderItem(this.props.db);
72 const{md, config} =this.props.db;
73 const cg = config.category[0];
74
75 const defaultKeys = config.category.map(item => {
76 return item + '-key';
77 })
78
79 // <Redirect to={`/page/${md[cg][0].page}`}/>
80
81 // window.location('/page/B')
82 console.log(window.history);
83
84 window.history.pushState({
85 foo: "bar"
86 }, "page 2")
87
88 return (
89 <Menu
90 mode="inline"
91 defaultSelectedKeys={['0']}
92 defaultOpenKeys={defaultKeys}
93 style={{ height: '100%' }}
94 >
95 {menuItems}
96 </Menu>
97 )
98 }
99}
\No newline at end of file