Skip to content

Commit 452dc7f

Browse files
committed
fix: Fix parentMenu is undefined makes MenuItem crash
1 parent bdc644f commit 452dc7f

File tree

1 file changed

+9
-15
lines changed

1 file changed

+9
-15
lines changed

src/MenuItem.jsx

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ export class MenuItem extends React.Component {
5353
const { active, parentMenu, eventKey } = this.props;
5454
// 在 parentMenu 上层保存滚动状态,避免重复的 MenuItem key 导致滚动跳动
5555
// https://github.com/ant-design/ant-design/issues/16181
56-
if (!prevProps.active && active && !parentMenu[`scrolled-${eventKey}`]) {
56+
if (!prevProps.active && active && (!parentMenu && !parentMenu[`scrolled-${eventKey}`])) {
5757
if (this.node) {
5858
scrollIntoView(this.node, ReactDOM.findDOMNode(parentMenu), {
5959
onlyScrollIfNeeded: true,
6060
});
6161
parentMenu[`scrolled-${eventKey}`] = true;
6262
}
63-
} else if (parentMenu[`scrolled-${eventKey}`]) {
63+
} else if (parentMenu && parentMenu[`scrolled-${eventKey}`]) {
6464
delete parentMenu[`scrolled-${eventKey}`];
6565
}
6666
this.callRef();
@@ -73,15 +73,15 @@ export class MenuItem extends React.Component {
7373
}
7474
}
7575

76-
onKeyDown = (e) => {
76+
onKeyDown = e => {
7777
const keyCode = e.keyCode;
7878
if (keyCode === KeyCode.ENTER) {
7979
this.onClick(e);
8080
return true;
8181
}
8282
};
8383

84-
onMouseLeave = (e) => {
84+
onMouseLeave = e => {
8585
const { eventKey, onItemHover, onMouseLeave } = this.props;
8686
onItemHover({
8787
key: eventKey,
@@ -93,7 +93,7 @@ export class MenuItem extends React.Component {
9393
});
9494
};
9595

96-
onMouseEnter = (e) => {
96+
onMouseEnter = e => {
9797
const { eventKey, onItemHover, onMouseEnter } = this.props;
9898
onItemHover({
9999
key: eventKey,
@@ -105,7 +105,7 @@ export class MenuItem extends React.Component {
105105
});
106106
};
107107

108-
onClick = (e) => {
108+
onClick = e => {
109109
const { eventKey, multiple, onClick, onSelect, onDeselect, isSelected } = this.props;
110110
const info = {
111111
key: eventKey,
@@ -141,9 +141,9 @@ export class MenuItem extends React.Component {
141141
return `${this.getPrefixCls()}-disabled`;
142142
}
143143

144-
saveNode = (node) => {
144+
saveNode = node => {
145145
this.node = node;
146-
}
146+
};
147147

148148
callRef() {
149149
if (this.props.manualRef) {
@@ -200,13 +200,7 @@ export class MenuItem extends React.Component {
200200
icon = React.createElement(this.props.itemIcon, this.props);
201201
}
202202
return (
203-
<li
204-
{...props}
205-
{...attrs}
206-
{...mouseEvent}
207-
style={style}
208-
ref={this.saveNode}
209-
>
203+
<li {...props} {...attrs} {...mouseEvent} style={style} ref={this.saveNode}>
210204
{props.children}
211205
{icon}
212206
</li>

0 commit comments

Comments
 (0)