类型“Readonly”上不存在属性“value”<{}>’

我需要创建一个表单,它将根据API的返回值显示一些内容。我正在使用以下代码:

类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
this.state={value:”};
this.handleChange=this.handleChange.bind(this);
this.handleSubmit=this.handleSubmit.bind(this);
}
手变(活动){
this.setState({value:event.target.value});
}
handleSubmit(事件){
警报(’已提交名称:’+this.state.value);//此处出错
event.preventDefault();
}
render(){
返回(
<form onSubmit={this.handleSubmit}>
<标签>
姓名:
<input type=“text”value={this.state.value}onChange={this.handleChange}/>//此处出错
</label>
<输入type=“submit”value=“submit”/>
</form>
);
}
}

我得到以下错误:

错误TS2339:类型“Readonly”上不存在属性“value”<{}>'。

我在对代码的两行注释中发现了这个错误。这个代码甚至不是我的,我从react官方网站上得到的(https://reactjs.org/docs/forms.html),但它在这里不起作用

我正在使用创建应用程序工具

组件的定义如下:

接口组件<P={},S={}>扩展组件生命周期<P、 S>{ }

这意味着状态(和道具)的默认类型是:{}
如果希望组件的状态为,则需要如下定义:

类应用程序扩展了React.Component<{},{value:string}>{
...
}

或:

键入MyProps={…};
类型MyState={value:string};
类应用程序扩展了React.Component<MyProps,MyState>{
...
}

发表评论