react受控组件操作表单

若如初见. 提交于 2019-12-09 21:19:56

1.给每个表单元素添加一个name属性

2.name属性的值要和state中的状态值保持一致

3.使用同一个事件处理程序

class Hello extends React.Component {
  state = {
    txt: '',
    content:'',
    addresss:'zk',
    isChecked:true
  }
handleForm=(e)=>{
    const target=e.target
判断事件类型,如果是checkbox返回checked值,不是返回文本框的value值
    const value=target.type=='checkbox'?target.checked:target.value;
获取文本框的name值
    const name=target.name
    this.setState({
      [name]:value
    })
  }
  render() {
    return (
      <div>
        <p>{this.state.txt}</p>
        <p>{this.state.content}</p>
        <p>{this.state.address}</p>
        <input type="text" name="txt" value={this.state.txt} onChange={this.handleForm} />
        <br/>
        {/* 富文本框 */}
        <textarea name="content" value={this.state.content} onChange={this.handleForm}></textarea>
        {/* 下拉框 */}
        <select name="address" value={this.state.addresss} onChange={this.handleForm}>
          <option value="bj">北京</option>
          <option value="sh">上海</option>
          <option value="zk">周口</option>
        </select>
        {/* 复选框 */}
        <input name="isChecked" type="checkbox" checked={this.state.isChecked} onChange={this.handleForm}/>
      </div>
    )
  }

}
ReactDOM.render(<Hello />, document.getElementById('root'))

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!