@@ -88,36 +88,42 @@ export const MenuActionList: React.FC<{
8888 ( dataSource : MenuNode [ ] , key ?: string ) =>
8989 dataSource . map ( ( menuNode , index ) => {
9090 if ( menuNode . id === SeparatorMenuItemNode . ID ) {
91- return < Menu . Divider key = { `divider- ${ index } ` } className = { styles . menuItemDivider } /> ;
91+ return null ;
9292 }
93-
93+ const hasSeparator = dataSource [ index + 1 ] && dataSource [ index + 1 ] . id === SeparatorMenuItemNode . ID ;
9494 if ( menuNode . id === SubmenuItemNode . ID ) {
9595 // 子菜单项为空时不渲染
9696 if ( ! Array . isArray ( menuNode . children ) || ! menuNode . children . length ) {
9797 return null ;
9898 }
9999
100100 return (
101- < Menu . SubMenu
102- key = { `${ ( menuNode as SubmenuItemNode ) . submenuId } -${ index } ` }
103- className = { styles . submenuItem }
104- popupClassName = 'kt-menu'
105- title = { < MenuAction hasSubmenu data = { menuNode } /> }
106- >
107- { recursiveRender ( menuNode . children , menuNode . label ) }
108- </ Menu . SubMenu >
101+ < >
102+ < Menu . SubMenu
103+ key = { `${ ( menuNode as SubmenuItemNode ) . submenuId } -${ index } ` }
104+ className = { styles . submenuItem }
105+ popupClassName = 'kt-menu'
106+ title = { < MenuAction hasSubmenu data = { menuNode } /> }
107+ >
108+ { recursiveRender ( menuNode . children , menuNode . label ) }
109+ </ Menu . SubMenu >
110+ { hasSeparator ? < Menu . Divider key = { `divider-${ index } ` } className = { styles . menuItemDivider } /> : null }
111+ </ >
109112 ) ;
110113 }
111114
112115 return (
113- < Menu . Item
114- id = { `${ menuNode . id } -${ index } ` }
115- key = { `${ menuNode . id } -${ key } -${ index } ` }
116- className = { styles . menuItem }
117- disabled = { menuNode . disabled }
118- >
119- < MenuAction data = { menuNode } disabled = { menuNode . disabled } />
120- </ Menu . Item >
116+ < >
117+ < Menu . Item
118+ id = { `${ menuNode . id } -${ index } ` }
119+ key = { `${ menuNode . id } -${ key } -${ index } ` }
120+ className = { styles . menuItem }
121+ disabled = { menuNode . disabled }
122+ >
123+ < MenuAction data = { menuNode } disabled = { menuNode . disabled } />
124+ </ Menu . Item >
125+ { hasSeparator ? < Menu . Divider key = { `divider-${ index } ` } className = { styles . menuItemDivider } /> : null }
126+ </ >
121127 ) ;
122128 } ) ,
123129 [ ] ,
@@ -453,7 +459,10 @@ export function InlineActionBar<T = undefined, U = undefined, K = undefined, M =
453459 // 因为这里的 context 塞到 useMenus 之后会自动把参数加入到 MenuItem.execute 里面
454460 const [ navMenu , moreMenu ] = useMenus ( menus , separator , context , debounce ) ;
455461
456- const navMenus = useMemo ( ( ) => isFlattenMenu ? [ ...navMenu , ...moreMenu ] : navMenu , [ navMenu , moreMenu , isFlattenMenu ] ) ;
462+ const navMenus = useMemo (
463+ ( ) => ( isFlattenMenu ? [ ...navMenu , ...moreMenu ] : navMenu ) ,
464+ [ navMenu , moreMenu , isFlattenMenu ] ,
465+ ) ;
457466
458467 // inline 菜单不取第二组,对应内容由关联 context menu 去渲染
459468 return (
0 commit comments