react封装form受控组件

本文介绍如何在React中通过高阶组件方式封装受控表单组件FormCreate,实现对多个表单和输入框的统一管理和便捷处理。
摘要由CSDN通过智能技术生成

页面中多个表单,多个输入框,统一封装处理,formCreate为一个高阶组件

import React from 'react';

export const formCreate = WrappedComponent => class extends React.Component {
    
    constructor(){
		super();
		this.state={fields:{}}
	}
 
	onChange = key => e =>{
		const { fields } = this.state;
		fields[key] = e.target.value;
		this.setState({
			fields,
		});
	}
 
	handleSubmit=()=>this.state.fields
 
	getField = fieldName =>{
		return {
			onChange:this.onChange(fieldName)
		}
	}
 
	render(){
		const props = {
			...this.props,
			getVal:this.handleSubmit,
			setval:this.getField,
		}
 
		return(<WrappedComponent {...props}/>)
	}

};

使用:

import { formCreate } from '../../components/formCreat';

@formCreate
export default class Login extends React.Component {
...//省略代码
<input type="text" {...this.props.setval('username'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值