React 统一添加表单元素值到state中

这篇博客讨论了React中如何处理多个输入框的数据,由于React不支持数据双向绑定,作者提出通过定义一个名为`getValue`的通用方法,结合每个输入框的`name`属性,来动态更新组件状态。在`render`方法中,为每个输入框设置`onChange`事件,调用`getValue`方法,以此实现手动的数据绑定。这种方法适用于大量输入框场景,简化了代码并保持组件状态的同步。
摘要由CSDN通过智能技术生成
  • React并没有像Vue和Angular中的数据双向绑定,因此在页面上输入的数据,需要手动添加到组件中
  • 页面上存在很多输入框的话,可以定义一个共通方法,在每一个输入框中添加name属性,从而实现统一添加
class House extends Component {

	constructor(props) {
		super(props);
		this.state = {
	      // 价格
	      price: '',
	      // 面积
	      size: '',
	      // 地址
	      address: ''
	    }
	}
	
	/*
		通过getValue这个共通方法统一将所有入力表单元素的值保存到组件的状态中
		name: 当前的状态名
      	value: 当前输入值或者选中值
	*/
	getValue = (name, value) => {
    	// 获取到输入项的名称和值,更新到状态中
	    this.setState({
	      // 使用了ES6的属性表达式
	      [name]: value
	    })
  	}
	
	render() {
		const {
		  // 价格
	      price,
	      // 大小
	      size,
	      // 地址
	      address
	    } = this.state
	    
		return (
			<div>
				<input value={price} onChange={(val) => this.getValue('price', val)} />
	          	<input value={size} onChange={(val) => this.getValue('size', val)} />
	          	<input value={address} onChange={(val) => this.getValue('address', val)} />
			</div>
		)
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值