【发布时间】:2020-09-15 10:56:29
【问题描述】:
我正在使用 Typescript 和 Material-ui 在 .tsx 文件中编写一个 ReactJS 类。在我的一个自定义组件中,我想创建一个对我在我的自定义组件中使用的组件之一的引用。
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 属性时,我收到了另一条消息:
Type 'RefObject Element>' 不可赋值 输入 '((实例:HTMLDivElement | null) => void) | 参考对象 |空 |不明确的'。类型 'RefObject Element>' 不可分配给 键入“参考对象”。 类型 '(props: TextFieldProps) => Element' 缺少来自类型 'HTMLDivElement' 的以下属性:align、addEventListener、 removeEventListener、accessKey 等 238 个。 TS2322
有什么想法吗? 非常感谢
【问题讨论】:
-
我遇到了同样的问题,这很有效! stackoverflow.com/a/65332778/11025497
标签: reactjs typescript validation material-ui tsx