表单绑定
React 中很多思路都是按原生的操作去做的,表单绑定也是一样的。
原生表单获取表单输入值,我们可以通过监听input,change等事件,然后获取e.target.value
如果想要设置表单的值,通常设置value属性即可,如果是选择框则是checked属性。
输入框绑定
class App extends React.PureComponent {
state = {
inputValue: ''
}
render() {
return <div className="App">
{this.state.inputValue}
<input value={this.state.inputValue} onInput={(e) => {
this.setState({ inputValue: e.target.value });
}} />
</div>
}
}
选择框绑定
class App extends React.PureComponent {
state = {
checkedArr: ["first"]
}
handleCheck = (e) => {
let arr = [...this.state.checkedArr]
if (e.target.checked) {
arr.push(e.target.value)
} else {
arr.splice(arr.indexOf(e.target.value), 1)
}
this.setState({ checkedArr: arr })
}
render() {
return <div className="App">
{this.state.checkedArr}
<input checked={this.state.checkedArr.indexOf("first") !== -1} onChange={this.handleCheck} value="first" type="checkbox" name="choose" />选项1
<input checked={this.state.checkedArr.indexOf("second") !== -1} onChange={this.handleCheck} value="second" type="checkbox" name="choose" />选项2
<input checked={this.state.checkedArr.indexOf("third") !== -1} onChange={this.handleCheck} value="thrid" type="checkbox" name="choose" />选项3
</div>
}
}
其他原生表单元素的绑定,比如textarea,radio,select等,都是类似的。