React 中 关于 useImperativeHandle 的 TypeScript 类型声明
warning:
这篇文章距离上次修改已过203天,其中的内容可能已经有所变动。
import React, { Ref, useImperativeHandle } from 'react';
interface MyComponentRef {
focus: () => void;
}
interface MyComponentProps {
// ...
}
const MyComponent: React.ForwardRefRenderFunction<MyComponentRef, MyComponentProps> = (
props,
ref
) => {
useImperativeHandle(ref, () => ({
focus: () => {
// 实现聚焦逻辑
}
}));
return (
// ...
);
};
export default React.forwardRef(MyComponent);
这段代码定义了一个MyComponent
组件,它使用React.forwardRef
来创建一个可以暴露引用(ref)的组件。MyComponentRef
接口定义了组件暴露的方法focus
,这样就可以通过传入的ref调用focus
方法。useImperativeHandle
确保了当ref被传递给组件时,focus
方法能够被正确地暴露和调用。
评论已关闭