File tree Expand file tree Collapse file tree 5 files changed +24
-20
lines changed Expand file tree Collapse file tree 5 files changed +24
-20
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,8 @@ export default class Menu extends Component {
5
5
constructor ( props ) {
6
6
super ( props ) ;
7
7
8
+ this . instanceType = 'Menu' ;
9
+
8
10
this . state = {
9
11
activeIndex : props . defaultActive ,
10
12
openedMenus : props . defaultOpeneds ? props . defaultOpeneds . slice ( 0 ) : [ ] ,
Original file line number Diff line number Diff line change @@ -4,6 +4,12 @@ import { PropTypes } from '../../libs';
4
4
import MixinComponent from './MixinComponent' ;
5
5
6
6
export default class MenuItem extends MixinComponent {
7
+ constructor ( props ) {
8
+ super ( props ) ;
9
+
10
+ this . instanceType = 'MenuItem' ;
11
+ }
12
+
7
13
componentDidMount ( ) {
8
14
this . rootMenu ( ) . state . menuItems [ this . props . index ] = this ;
9
15
}
@@ -21,10 +27,6 @@ export default class MenuItem extends MixinComponent {
21
27
return this . props . index === this . rootMenu ( ) . state . activeIndex ;
22
28
}
23
29
24
- parent ( ) {
25
- return this . context . component ;
26
- }
27
-
28
30
render ( ) {
29
31
return (
30
32
< li
@@ -40,10 +42,6 @@ export default class MenuItem extends MixinComponent {
40
42
}
41
43
}
42
44
43
- MenuItem . contextTypes = {
44
- component : PropTypes . any
45
- } ;
46
-
47
45
MenuItem . propTypes = {
48
46
index : PropTypes . string . isRequired ,
49
47
route : PropTypes . object ,
Original file line number Diff line number Diff line change @@ -5,6 +5,8 @@ export default class MenuItemGroup extends Component {
5
5
constructor ( props ) {
6
6
super ( props ) ;
7
7
8
+ this . instanceType = 'MenuItemGroup' ;
9
+
8
10
this . state = {
9
11
paddingLeft : 20
10
12
}
@@ -15,15 +17,15 @@ export default class MenuItemGroup extends Component {
15
17
}
16
18
17
19
initPadding ( ) {
18
- let level = 0 , parent = this . parent ( ) , component = parent . constructor . name ;
20
+ let level = 0 , parent = this . parent ( ) , component = parent . instanceType ;
19
21
20
22
while ( component !== 'Menu' ) {
21
23
if ( component === 'SubMenu' ) {
22
24
level ++ ;
23
25
}
24
26
25
27
parent = parent . parent ( ) ;
26
- component = parent . constructor . name ;
28
+ component = parent . instanceType ;
27
29
}
28
30
29
31
this . setState ( {
Original file line number Diff line number Diff line change @@ -2,11 +2,15 @@ import React from 'react';
2
2
import { Component , PropTypes } from '../../libs' ;
3
3
4
4
export default class MixinComponent extends Component {
5
+ parent ( ) {
6
+ return this . context . component ;
7
+ }
8
+
5
9
indexPath ( ) {
6
10
let path = [ this . props . index ] ;
7
11
let parent = this . parent ( ) ;
8
12
9
- while ( parent . constructor . name !== 'Menu' ) {
13
+ while ( parent . instanceType !== 'Menu' ) {
10
14
if ( parent . props . index ) {
11
15
path . unshift ( parent . props . index ) ;
12
16
}
@@ -20,14 +24,18 @@ export default class MixinComponent extends Component {
20
24
rootMenu ( ) {
21
25
let parent = this . parent ( ) ;
22
26
23
- while ( parent . constructor . name !== 'Menu' ) {
27
+ while ( parent . instanceType !== 'Menu' ) {
24
28
parent = parent . parent ( ) ;
25
29
}
26
30
27
31
return parent ;
28
32
}
29
33
}
30
34
35
+ MixinComponent . contextTypes = {
36
+ component : PropTypes . any
37
+ } ;
38
+
31
39
MixinComponent . propTypes = {
32
40
index : PropTypes . string . isRequired
33
41
} ;
Original file line number Diff line number Diff line change @@ -8,6 +8,8 @@ export default class SubMenu extends MixinComponent {
8
8
constructor ( props ) {
9
9
super ( props ) ;
10
10
11
+ this . instanceType = 'SubMenu' ;
12
+
11
13
this . state = {
12
14
active : false
13
15
} ;
@@ -67,10 +69,6 @@ export default class SubMenu extends MixinComponent {
67
69
return this . rootMenu ( ) . state . openedMenus . indexOf ( this . props . index ) !== - 1 ;
68
70
}
69
71
70
- parent ( ) {
71
- return this . context . component ;
72
- }
73
-
74
72
render ( ) {
75
73
return (
76
74
< li className = { this . classNames ( 'el-submenu' , {
@@ -97,10 +95,6 @@ SubMenu.childContextTypes = {
97
95
component : PropTypes . any
98
96
} ;
99
97
100
- SubMenu . contextTypes = {
101
- component : PropTypes . any
102
- } ;
103
-
104
98
SubMenu . propTypes = {
105
99
index : PropTypes . string . isRequired
106
100
} ;
You can’t perform that action at this time.
0 commit comments