我正在用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",但在我的render中判断ref属性时,我有另一条消息:
Type 'RefObject<(props: TextFieldProps) => Element>' is not assignable to type '((instance: HTMLDivElement | null) => void) | RefObject | null | undefined'. Type 'RefObject<(props: TextFieldProps) => Element>' is not assignable to type 'RefObject'. Type '(props: TextFieldProps) => Element' is missing the following properties from type 'HTMLDivElement': align, addEventListener, removeEventListener, accessKey, and 238 more. TS2322
有什么 idea 吗?