我正在编写一个使用Typescript和Material-ui的ReactJS类,保存于.tsx文件中。在我的自定义组件中,我想创建一个对我使用的组件的引用。
export class MyTextField extends React.Component<MyProps, MyState> {
private refTextField: React.RefObject<TextField>;
constructor(props: MyProps) {
super(props);
this.refTextField = React.createRef();
}
render(): JSX.Element {
const { id, label, value: defaultValue } = this.props;
const { value } = this.state;
const element = (
<TextField ref={this.refTextField} id={id} label={label} defaultValue={defaultValue} value={value} />
);
return element;
}
}
编译时,在我的引用声明中出现错误:
'TextField' 指的是一个值,但在此处被用作类型。TS2749
我尝试在声明中加入 "typeof TextField",但在渲染时 valuing ref 属性时又出现了另一条信息:
类型 'RefObject<(props: TextFieldProps) => Element>' 不可分配给类型 '((instance: HTMLDivElement | null) => void) | RefObject | null | undefined'。类型 'RefObject<(props: TextFieldProps) => Element>' 不可分配给类型 'RefObject'。 类型 '(props: TextFieldProps) => Element' 中缺少以下属性:align、addEventListener、removeEventListener、accessKey 和其他 238 个属性。TS2322
有什么想法吗? 非常感谢。