这里我们必须编写三个函数来更改表单所有输入字段的状态,如果我们有更多字段,例如电话和地址,我们必须再编写两个函数来更改这些字段的状态,我想问是否存在有什么方法我们可以只编写一个通用函数来更改此表单的任何字段的状态,而不是为每个表单字段编写单独的函数?
class SignUpForm extends React.Component {
constructor() {
super();
this.state = {
name: '',
email: '',
password: '',
};
}
handleNameChange = (evt) => {
this.setState({name: evt.target.value});
}
handleEmailChange = (evt) => {
this.setState({email: evt.target.value});
}
handlePasswordChange = (evt) => {
this.setState({password: evt.target.value});
}
render(){
return(
<form onSubmit={this.handleSubmit}>
<input
type="text"
placeholder="Enter Name"
value={this.state.name}
onChange={this.handleNameChange}
/>
<input
type="text"
placeholder="Enter email"
value={this.state.email}
onChange={this.handleEmailChange}
/>
<input
type="password"
placeholder="Enter password"
value={this.state.password}
onChange={this.handlePasswordChange}
/>
<button disabled={isDisabled}>Sign up</button>
</form>
)
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用以下模式:
handleChange = (type, event) => {
this.setState({[type]: event.target.value});
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样使用handleChange:
<input
type="text"
placeholder="Enter Name"
value={this.state.name}
onChange={(event) => this.handleChange('name', event)}
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1760 次 |
| 最近记录: |