当我使用这段代码时,出现了错误
根据代码,我可以看到
属性"type"在类型"EventTarget"上不存在
。 checked
,value
和name
也是如此。根据代码,我可以看到
FormEvent
从SyntheticEvent
继承,而SyntheticEvent
又有一个target:EventTarge
t。但是,EventTarget
没有我需要的属性。如果我将event
标记为any
(event:any
),代码就能完美运行。我该如何解决这个问题?我尝试使用普通的Html输入,然后通过设置事件为React.ChangeEvent<HTMLInputElement>
来使其正常工作。handleChange(event: React.FormEvent<React.Component<ReactBootstrap.FormControlProps, {}>>) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name;
this.setState({
[name]: value
});
}
...
<FormGroup controlId="Email">
<Col componentClass={ControlLabel} sm={2}>
Email
</Col>
<Col sm={10}>
<FormControl name="email" type="email" value={this.state.email} onChange={(event) => this.handleChange(event)} placeholder="Email" />
</Col>
</FormGroup>
有输入的工作代码:
handleChange(event: React.ChangeEvent<HTMLInputElement>) {
...
}
...
<input
name="email"
type="email"
value={this.state.email}
onChange={(event) => this.handleChange(event)} />