React中最全获取表单数据:原生DOM、refs、 event.target.value、ant-design的Form组件

本文介绍了在React中获取表单数据的四种方法,包括原生DOM操作、使用Refs、监听事件target.value以及利用ant-design的Form组件。每种方法都有其适用场景和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 原生DOM表单

handleSubmit = () => {
  var username = document.getElementById('getName').value;
}
render() {
    return (
        <div>
            <input type="text" id="getName" placeholder="用户名" />
            <button onClick={this.handleSubmit}> 获取用户名</button>   
            //参数传递需要1.  this.handleSubmit.bind(this,params)      
            //  2.()=>this.handleSubmit(params)  
        </div>
    ) 
}

二、 refs

使用refs需要注意的地方:

  1. Refs是访问组件内部DOM节点唯一看可靠的方法
  2. Refs会自动销毁对组件的引用
  3. 不要在render或者render之前对Refs进行调用
  4. 不要滥用Refs(会影响性能)
  5. ref可以设置字符串,也可以设置回调函数(推荐)。
handleSubmit = () => {
  var username = this.refs.submit.value;
}
render() {
    return (
        <div>
            <input ref="submit" type="text" placeholder="用户名" />
            <button onClick={this.handleSubmit}> 获取用户名</button>                       
        </div>
    ) 
}

三、 event.target.value

handleSubmit = (event) => {
  var username = event.target.value;
}
render() {
    return (
        <div>
            <input type="text" onclick={this.handleSubmit} placeholder="用户名" />               
        </div>
    ) 
}

四、ant-design(Form组件)

ant-design的Form组件文档

ant-design框架自带获取表单数据的用法 this.props.form.getFieldsValue()

import {Card, Form, Input,message} from 'antd'
class FormLogin extends React.Component {
    handleSubmit = () => {
        //获取表单数据
        let userInfo = this.props.form.getFieldsValue()
    }

    render() {
        const {getFieldDecorator} = this.props.form  //使用数据绑定方法
        return (
            <div>
                 <Form layout="vertical">
                      <FormItem>
                          {
                              getFieldDecorator('userName', {
                                  initialValue: '',//初始化数据
                                  rules: [//验证规则
                                      {
                                          required: true,
                                          message: '用户名不能为空'
                                      }
                                  ]
                              })(
                                  <Input prefix={ <Icon type="user"></Icon> } placeholder="请输入用户名"/>
                              )
                          }
                      </FormItem>
                      <FormItem>
							<Button type="primary" onClick={this.handleSubmit}>登陆</Button>
					  <FormItem>
                 </Form>
            </div>
        )
    }
}

export default Form.create()(FormLogin);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值