File tree Expand file tree Collapse file tree 1 file changed +13
-6
lines changed
Expand file tree Collapse file tree 1 file changed +13
-6
lines changed Original file line number Diff line number Diff line change @@ -49,12 +49,19 @@ export class MenuItem extends React.Component {
4949 this . callRef ( ) ;
5050 }
5151
52- componentDidUpdate ( ) {
53- const { active, parentMenu } = this . props ;
54- if ( active && this . node ) {
55- scrollIntoView ( this . node , ReactDOM . findDOMNode ( parentMenu ) , {
56- onlyScrollIfNeeded : true ,
57- } ) ;
52+ componentDidUpdate ( prevProps ) {
53+ const { active, parentMenu, eventKey } = this . props ;
54+ // 在 parentMenu 上层保存滚动状态,避免重复的 MenuItem key 导致滚动跳动
55+ // https://github.com/ant-design/ant-design/issues/16181
56+ if ( ! prevProps . active && active && ! parentMenu [ `scrolled-${ eventKey } ` ] ) {
57+ if ( this . node ) {
58+ scrollIntoView ( this . node , ReactDOM . findDOMNode ( parentMenu ) , {
59+ onlyScrollIfNeeded : true ,
60+ } ) ;
61+ parentMenu [ `scrolled-${ eventKey } ` ] = true ;
62+ }
63+ } else if ( parentMenu [ `scrolled-${ eventKey } ` ] ) {
64+ delete parentMenu [ `scrolled-${ eventKey } ` ] ;
5865 }
5966 this . callRef ( ) ;
6067 }
You can’t perform that action at this time.
0 commit comments