首页 > 其他分享 >antd 中 清空Input组件中的值,不是通过form.setFiledValue的方式,非受控组件清空值

antd 中 清空Input组件中的值,不是通过form.setFiledValue的方式,非受控组件清空值

时间:2022-10-19 14:23:23浏览次数:68  
标签:setFiledValue form 输入框 清空 组件 Input antd

今天看到一篇不错的文章关于ant form不通过react的state设置非受控组件值的文章,转发记录一下:(以下为原文)

 

最近做了一个业务就是在输入框中处理防抖的业务,本来就可以,测试小姐姐说要 加个按钮可以 清空下 输入框中的值。

我想了想 本来想直接搞一个 state状态值 然后直接 setState方式清空呢 发现根本不行 因为防抖触发的就是异步的 导致 连输入内容都不行。

其实 这个时候 我就想到了 要用 form组件的 setFieldValue的形式 进行处理 但是那样的话 我好想很大部分要重写了,不想这么大动干戈哎

后来就想了想 原生的非受控组件 可以直接通过dom操作清空输入框中的值

我先试试看 好像不太行, 百度了下 也没有百度到啥结果来

搞得我有点难受了 那还能怎么办直接看源码了 看antd怎么封装的 Input组件了

 

在源码中我看到了一个 让我有点激动地方法了

我马上就拿来试试看呢

因为公司项目是 16.7 还不能使用 hooks 所以就用了 React.createRef 的方式 来进行获取 dom元素了

import React from 'react'
import { Button, Input  } from "antd"
function App() {
  const handleClear = function () {
    myRef.current.setValue("");  // 就是这个方法呢
  }
  const myRef = React.createRef();
  return (
    <div className="App">
      <Button type="danger" onClick={handleClear}>清空Input输入框的值</Button>
      <Input ref={myRef} style={{width: '200px'}}/>
    </div>
  );
}

myRef.current.setValue(""); 就是这个方法 看来实现了 我们想要的效果哈

但是这样就完了吗 我本来想结束的时候 看见了一个 好东西

看见 state不知道 童鞋 想到了什么 是不是 setState呢 我们是不是可以来试试看呢

 myRef.current.setState({value: ""});

哈哈 总要尝试下 呢 万一可以呢 是吧

事实上 也是 可以 哈哈哈 看来也不错 有了意外的收获了
不错 继续努力

关注我 持续更新 前端知识


————————————————
版权声明:本文为CSDN博主「yunchong_zhao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yunchong_zhao/article/details/117911989

标签:setFiledValue,form,输入框,清空,组件,Input,antd
From: https://www.cnblogs.com/jimaww/p/16806066.html

相关文章

  • 【我要做开源】Vue DevUI开源指南06:开源组件库中的CLI脚手架建设,再也不用担心重复工作
    脚手架是为了保证各施工过程顺利进行而搭设的工作平台。按搭设的位置分为外脚手架、里脚手架;按材料不同可分为木脚手架、竹脚手架、钢管脚手架;按构造形式分为立杆式脚手架、......
  • 【我要做开源】专题7,创建开源组件库mini-vue-devui,串讲前6次主题
    前言本文作者是DevUI团队负责人kagol老师,感谢他的无私分享!  本文主要对之前的直播内容做一次阶段性的总结,将之前的内容穿起来,并搭建一个mini-vue-devui项目,后续组件开发和......
  • Transformer源码
    title:Transformer源码date:2022-10-0918:30:35mathjax:truetags:EncoderDecoderTransformerTransformer代码(源码Pytorch版本)从零解读(Pytorch版本)_哔哩......
  • React之高阶组件
    React之高阶组件注意:本章节运行环境在​​React项目构建​​章节之上。文章目录​​React之高阶组件​​​​高阶组件​​​​装饰器​​​​带参装饰器​​高阶组件​​let......
  • 基础篇——组件
    二,组件1,组件有两种定义方式:class(类组件)和使用函数(函数组件)class:继承自React.Component内部必须定义render方法,返回该组件UI的React元素使用函数:接收props作为......
  • 基础组件(一)
    1.TextInput允许用户输入文本的基础组件.属性onChangeText 接受一个函数,而此函数会在文本变化时被调用。onSubmitEditing 在文本被提交后(用户按下软键盘上的提交键)调用 ......
  • Django之form表单的数据验证
     1.先导入forms模块fromdjangoimportforms 2.创建模板的类classloginform(forms.Form):#2、模板中的元素name=forms.CharField(min_length=6,e......
  • #打卡不停更# HarmonyOS - 基于ArkUI(JS)实现虚拟摇杆组件
    作者:杨尚晓前言虚拟摇杆在移动端游戏中是最常见看的,用来实现游戏中的精灵移动。本案例中使用jspai中的div和image组件来实现的虚拟摇杆组件,然后监听touch事件获取滑动的方......
  • 从0搭建vue3组件库:Shake抖动组件
    先看下效果其实就是个抖动效果组件,实现起来也非常简单。之所以做这样一个组件是为了后面写Form表单的时候会用到它做一个规则校验,比如下面一个简单的登录页面,当点击登录......
  • vue组件通信6种方式总结(常问知识点)
    前言在Vue组件库开发过程中,Vue组件之间的通信一直是一个重要的话题,虽然官方推出的Vuex状态管理方案可以很好的解决组件之间的通信问题,但是在组件库内部使用Vuex往往会......