react:页面中存在多个input设置value属性

首先要为这些所有的input框绑定上onChange的方法,然后还需要在this.state中去设置不同的input对应不同的值,最后还需要在changeValue的方法中去一一监听input输入时去修改对应的input的值。

也可以写一个changeValue方法,但是input的属性的name要和state里的名字要一样,如下所示:

1
2
3
4
5
6
7
8
9
10
constructor() {
super();
this.state = {
login:{
username:'',
password:''
},
user:{}
}
}

1
2
3
4
5
6
7
用户名:
<input type={'text'} name={'username'} value={this.state.login.username}
className={'username'} onChange={this.changeValue.bind(this)}/>
<br/>
密码:
<input type={'password'} name={'password'} value={this.state.login.password}
className={'password'} onChange={this.changeValue.bind(this)}/>
1
2
3
4
5
changeValue(event) {
let newLogin = this.state.login;
newLogin[event.target.name] = event.target.value;
this.setState({login: newLogin})
}

使用event.target.name获取input的name属性,使用evnet.target.value获取input的value,令newLogin为this.state.login,然后将newLogin中名为event.target.name的属性的值设为event.target.value,之后再setState,从而可以改变state.login的值。

-------------本文结束 感谢您的阅读-------------