React获取ANTD的Input组件值的两种方法

本文探讨了在使用Ant Design(antd)开发中,如何通过event.target.value和ref钩子正确获取Input组件的值,包括遇到的问题及解决方案。重点在于理解Input组件封装原理和非受控组件的状态更新时机。

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

ANTD获取Input组件值的两种方法


今天试着用antd的组件取开发网页,用useRef勾子去获取Input组件的值,发现会报错,然后去输出了一下Input组件的属性,antd只是在input上封装了一层而已。

1.使用event.target.value

万金油用法event.target.value

import React from 'react';
import { Input } from 'antd';

function InputWord(){
  const change1 =(event)=>{
    word = event.target.value
    console.log(word)
  }
 //省略
 
return(
      <Input  type="text" onChange={change1} placeholder="Word" ></Input>

)

}

2.使用ref勾子

直接用ref.current.value出错是因为这不是基础的html组件,Input组件是在基础输入框input上的一个封装,要找到Input组件里面的基础input组件,才有value值。

import React {useRef} from 'react';
import { Input } from 'antd';

function InputSentence(){
  const input2 = useRef(null)
  const change2 =(event)=>{
    sentence = input2.current.input.value
    console.log(sentence)
  }
 //省略
 
return(
      <Input ref={input2} type="text" onChange={change2} placeholder="Sentence" ></Input>

)

}

因为Input组件把输入框的值也存放到,我试着用input2.current.state.value去取,但是总是取上一次的结果,这说明了在onChange调用change2 函数的时候,组件还没有开始setState,如果是写非受控组件的话也是可以这么用的,因为已经渲染完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值