反应.js使用打字稿,属性在类型上不存在 对象 状态错误



我试图使用react.js文档中关于表单的代码,但我将其与typescript一起使用,代码在这个链接上,但当我将其添加到typescript文件时,我收到了一个错误Property 'value' does not exist on type 'object'.

class MailListSubscribe extends React.Component<
IMaterialUIComponentProps,
object
> {
constructor(props: any) {
super(props);
this.state = {value: ''};
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(event: any) {
// error appears on this.state.value
alert('A name was submitted: ' + this.state.value);
event.preventDefault();
}
public render() {
return (
<form onSubmit={this.handleSubmit}>
<label>
Name:
// error appears again on this.state.value
<input type="text" value={this.state.value} onChange={this.handleChange} />
</label>
<input type="submit" value="Submit" />
</form>
);

感谢您的帮助!

React.Component的类型定义类似于Component<{[key:string}:any},{[key:string]:any}>,即,它可以接受任何具有字符串键和任何值类型的对象。

然而,当我们试图指定对象时,情况并非如此。相反,它试图将该类型模拟为"Object"类型。因此,它无法从中找到任何自定义值。请从官方打字文档中查看。我认为他们有足够的描述来解释这个问题。

此外,只需如下声明组件状态的类型:

interface IState {
value: string;
}

最新更新