我需要创建一个表单,它将根据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>;{
...
}