withFocusOutside 是一个 React 高阶组件,用于在焦点离开元素时触发行为。由于当焦点过渡到同一上下文中的另一个元素时,React 中仍会触发 blur 事件,因此该高阶组件封装了确定焦点是否真正离开元素的必要逻辑。
用法
使用 withFocusOutside 包装原始组件,并在组件类上定义 handleFocusOutside 实例方法。
注意:withFocusOutside 仅应用于包装 Component 类。
import { withFocusOutside, TextControl } from '@wordpress/components';
const MyComponentWithFocusOutside = withFocusOutside(
class extends React.Component {
handleFocusOutside() {
console.log( 'Focus outside' );
}
render() {
return (
<div>
<TextControl onChange={ () => {} } />
<TextControl onChange={ () => {} } />
</div>
);
}
}
);
在上面的示例中,仅当焦点离开元素时才会调用 handleFocusOutside 函数,而在两个输入框之间切换焦点时不会调用。