好客租房37-多表单元素优化

简介: 好客租房37-多表单元素优化

使用一个事件处理多个元素

1给表单元素添加name属性 名称域state相同

2根据表单元素获取对应值

3在唱歌事件处理程序中通过[name]修改对应的state

//导入react

import React from 'react'


import ReactDOM from 'react-dom'

//导入组件


// 约定1:类组件必须以大写字母开头


// 约定2:类组件应该继承react.component父类 从中可以使用父类的方法和属性


// 约定3:组件必须提供render方法


// 约定4:render方法必须有返回值


class HelloWorld extends React.Component {
     //初始化state
     state = {
         txt: '1',
         content:"2",
         sex:"nan",
         isChecked:true
     }
     handleChange = (e) => {
         //获取当前的dom对象
         const target=e.target
         //根据类型获取值
         const value =target.type==="checkbox"?target.checked:target.value
         //获取name
         const name=target.name
         this.setState({
             [name]: value,
         })
     }
     // handleChangeValue = (e) => {
     //     this.setState({
     //         value: e.target.value,
     //     })
     // }
     // handleChangeSelect = (e) => {
     //     this.setState({
     //         value: e.target.select,
     //     })
     // }
     // handleChangeCheck = (e) => {
     //     this.setState({
     //         checked: e.target.checked,
     //     })
     // }
     //抽离出来 this报错 事件处理中的this为underfine
     render() {
         return (
             <div>
                 <input
                     type="text"
                     name="txt"
                     value={this.state.txt}
                     onChange={this.handleChange}
                 />
                 <textarea name="content" onChange={this.handleChange} value={this.state.content}></textarea>
                 <select name="sex" onChange={this.handleChange} value={this.state.sex}>
                     <option value="nan">男</option>
                     <option value="nv">女</option>
                 </select>
                 <input
                     type="checkbox"
                     name="isChecked"
                     checked={this.state.isChecked}
                     onChange={this.handleChange}
                 />
             </div>
         )
     }
 }
 ReactDOM.render(<HelloWorld />, document.getElementById('root'))

运行结果

image.png

相关文章
好客租房122-租房样式结构
好客租房122-租房样式结构
104 0
好客租房122-租房样式结构
|
索引
好客租房144-渲染城市列表
好客租房144-渲染城市列表
130 0
好客租房144-渲染城市列表
好客租房123-租房数据渲染
好客租房123-租房数据渲染
139 0
好客租房123-租房数据渲染
好客租房114-轮播图的功能
好客租房114-轮播图的功能
108 0
好客租房114-轮播图的功能
|
定位技术 API 容器
好客租房129-百度地图api3使用步骤
好客租房129-百度地图api3使用步骤
149 0
好客租房129-百度地图api3使用步骤
|
定位技术
好客租房170-地图找房的一个封装流程
好客租房170-地图找房的一个封装流程
66 0
好客租房170-地图找房的一个封装流程
|
前端开发
好客租房36-表单处理(3受控组件的示例)
好客租房36-表单处理(3受控组件的示例)
76 0
好客租房36-表单处理(3受控组件的示例)
好客租房146-渲染(展示索引下每一行的高度)
好客租房146-渲染(展示索引下每一行的高度)
107 0
好客租房146-渲染(展示索引下每一行的高度)
好客租房110-修改tabber样式外观
好客租房110-修改tabber样式外观
137 0
好客租房110-修改tabber样式外观
好客租房176-获取房源数据优化
好客租房176-获取房源数据优化
130 0
好客租房176-获取房源数据优化