useImperativeHandle

useImperativeHandle 可以让你在使用 ref 时自定义暴露给父组件的实例值。在大多数情况下,应当避免使用 ref 这样的命令式代码。

基本用法

语法:

useImperativeHandle(ref, createHandle, [deps]);

类型声明:

export function useImperativeHandle<T>(
ref: {|current: T | null|} | ((inst: T | null) => mixed) | null | void,
create: () => T,
deps: Array<mixed> | void | null,
): void {
const dispatcher = resolveDispatcher();
return dispatcher.useImperativeHandle(ref, create, deps);
}

代码示例:

基本用法

父组件调用子组件中 useImperativeHandle 定义的 focusblur 方法

最佳实践