File tree Expand file tree Collapse file tree 1 file changed +18
-6
lines changed Expand file tree Collapse file tree 1 file changed +18
-6
lines changed Original file line number Diff line number Diff line change @@ -267,18 +267,30 @@ const InternalSubMenu = (props: SubMenuProps) => {
267267 </ div >
268268 ) ;
269269
270- if ( mode !== 'inline' && ! overflowDisabled ) {
270+ // Cache mode if it change to `inline` which do not have popup motion
271+ const triggerModeRef = React . useRef ( mode ) ;
272+ if ( mode !== 'inline' ) {
273+ triggerModeRef . current = mode ;
274+ }
275+
276+ if ( ! overflowDisabled ) {
277+ const triggerMode = triggerModeRef . current ;
278+
279+ // Still wrap with Trigger here since we need avoid react re-mount dom node
280+ // Which makes motion failed
271281 titleNode = (
272282 < PopupTrigger
273- mode = { mode }
283+ mode = { triggerMode }
274284 prefixCls = { subMenuPrefixCls }
275- visible = { ! internalPopupClose && open }
285+ visible = { ! internalPopupClose && open && mode !== 'inline' }
276286 popupClassName = { popupClassName }
277287 popupOffset = { popupOffset }
278288 popup = {
279- < SubMenuList id = { popupId } ref = { popupRef } >
280- { children }
281- </ SubMenuList >
289+ < MenuContextProvider mode = { triggerMode } >
290+ < SubMenuList id = { popupId } ref = { popupRef } >
291+ { children }
292+ </ SubMenuList >
293+ </ MenuContextProvider >
282294 }
283295 disabled = { mergedDisabled }
284296 onVisibleChange = { onPopupVisibleChange }
You can’t perform that action at this time.
0 commit comments