最佳答案
我在一个。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”,但是在赋值渲染中的 ref 属性时,我得到了另一条消息:
类型“ RefObject < (props: TextFieldProps) = > Element >”是不可赋值的 类型’((实例: HTMLDivElement | null) = > void) | 类型 ’RefObject < (props: TextFieldProps) = > Element >’不能赋值给 输入’RefObject’。 Type’(props: TextFieldProps) = > Element’在类型‘ HTMLDivElement’中缺少以下属性: RemoveEventListener、 accKey 和238 more. TS2322
有什么想法吗? 非常感谢