react中表單要獲取用戶輸入的各個不同的input框的輸入值一般都是每個輸入框定義一個方法,如果輸入框多的話要定義很多方法,這種比較雍余,現在
可以利用es6的方法將每個輸入框的方法同一一個方法,從而獲取不同輸入框的值,代碼如下:
class Login extends React.Component{
constructor (props){
super(props);
this.state = {
username:'',
password:'',
}
}
這是登錄需要輸入表單的用戶名和密碼,
<input type="text"
name = 'username'
className="form-control"
placeholder="請輸入用戶名"
onChange={e =>this.onInputChange(e)}
/>
<input type="password"
name = 'password'
className="form-control"
placeholder="請輸入密碼"
onChange={e =>this.onInputChange(e)}
/>
在這里密碼和用戶名輸入框采用同一個方法這里,值不過在input框中各自定義一個name屬性,分別表示username、password這樣在方法onInputChange中inputName就是
分別是state中的username、password這樣就節約了很多代碼,es中變量名可以是個變量用中括號包起來這樣就能分別代表各input框中的變量了
onInputChange(e){
//es6變量名是一個變量
let inputValue = e.target.value,
inputName = e.target.name
this.setState({
[inputName]:inputValue
})
}