diff --git a/examples/components/Example.jsx b/examples/components/Example.jsx index 2573c1b26..b141e29ac 100644 --- a/examples/components/Example.jsx +++ b/examples/components/Example.jsx @@ -696,7 +696,7 @@ export const examples = [ { label: 'APP 多页应用', icon: 'fa fa-cubes', - path: '/app/', + path: '/examples/app/', component: () => { // 如果在 gh-pages 里面 if (/^\/amis/.test(window.location.pathname)) { diff --git a/src/renderers/DropDownButton.tsx b/src/renderers/DropDownButton.tsx index 48aae5e79..32b000c03 100644 --- a/src/renderers/DropDownButton.tsx +++ b/src/renderers/DropDownButton.tsx @@ -147,12 +147,14 @@ export default class DropDownButton extends React.Component< }; target: any; + timer: ReturnType; constructor(props: DropDownButtonProps) { super(props); this.open = this.open.bind(this); this.close = this.close.bind(this); this.toogle = this.toogle.bind(this); + this.keepOpen = this.keepOpen.bind(this); this.domRef = this.domRef.bind(this); } @@ -183,9 +185,17 @@ export default class DropDownButton extends React.Component< } close() { - this.setState({ - isOpened: false - }); + this.timer = setTimeout(() => { + this.setState({ + isOpened: false + }); + }, 200); + } + + keepOpen() { + if (this.timer) { + clearTimeout(this.timer); + } } renderButton( @@ -260,6 +270,7 @@ export default class DropDownButton extends React.Component< menuClassName )} onClick={closeOnClick ? this.close : noop} + onMouseEnter={this.keepOpen} ref={ref} > {children