我正在尝试使用react.js文档中有关表单的代码,但是我将其与打字稿一起使用,代码在this link上,但是当我将其添加到打字稿文件中时,出现错误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>
);
感谢您的帮助,谢谢!
答案 0 :(得分:0)
React.Component的类型定义类似于Component <{{[key:string}:any},{[key:string]:any}>,即它可以使用带字符串键的任何Object和任何值类型
但是,当我们尝试指定对象时并非如此。而是尝试将类型模拟为“对象”类型。因此,它将无法从中找到任何自定义值。 检查官方打字稿文档中的this。我认为他们有足够的描述来解释这个问题。
此外,只需声明组件状态的类型,如下所示:
interface IState {
value: string;
}