当前位置: 首页 > news >正文

react中的ref三种形式

1,字符串形式

  <!-- 创建盒子 --><div id="test"></div>   <script type="text/babel">class Demo extends React.Component{render(){return(<div><input type="text" ref='input1' /><button onClick={this.showDate}>点我提示左侧的数据</button><input type="text" onBlur={this.shhowDate1} ref='input2'/></div>)}showDate = () =>{console.log(this.refs.input1.value,'input1')}shhowDate1 = () =>{console.log(this.refs.input2.value,'input1')}}ReactDOM.render(<Demo />,document.getElementById('test'))</script>

2,回调形式

          /*** 1,在标签上使用回调形式* <input type="text" ref={c =>this.input1 = c }/>* 2,使用获取* this.input1* **/
  <!-- 创建盒子 --><div id="test"></div><script type="text/babel">class Test extends React.Component {render(){return (<div><input type="text" ref={c =>this.input1 = c }/><button onClick={this.showDate}>点我</button><input type="text" ref={c =>this.input2 = c}/></div>)}showDate = () =>{console.log(this.input1.value)console.log(this.input2.value)}}ReactDOM.render(<Test />,document.getElementById('test'))</script>

3,createRef形式

        /***  1,引用语法* aaa =  React.createRef()* 2,定义在标签上* <input type="text" ref={this.aaa}/>* 3,使用获取* console.log(this.aaa.current.value,'this.mydata')* **/
    <script type="text/babel">class MyComponent extends React.Component{/***  1,引用语法* React.* **/mydata = React.createRef()mydata1 = React.createRef()render(){return (<div><input type="text" ref={this.mydata}/><button onClick={this.clickDate} >点击</button><input type="text" ref={this.mydata1} onBlur={this.clickDate1}/></div>)}clickDate = () =>{console.log(this.mydata.current.value,'this.mydata')}clickDate1 = () =>{console.log(this.mydata1.current.value,'this.mydata1')}}ReactDOM.render(<MyComponent/>,document.getElementById('test'))</script>

相关文章:

  • 单细胞miloR分析(基于 KNN 图的细胞差异丰度分析方法)
  • 初始C++模板
  • Solidity智能合约中的异常处理(error、require 和 assert)
  • 【CAM350】使用总结 <一>{ 光绘Gerber 对齐 }
  • 【JavaScript】尾递归优化
  • BaoStock 的安装
  • 内网攻击思路流程与信息收集
  • 【Element-UI】实现el-drawer抽屉的左右拖拽宽度
  • Docker torchserve workflow部署流程
  • 数据文件(0)
  • excel快速入门(二)
  • Windows C++:MoveFile、MoveFileEx、MoveFileWithProgress、CopyFile、CopyFileEx。
  • S32K312 RTD 4.0.0 版本 OCU 例程配置流程说明
  • Linux centerOS 服务器搭建NTP服务
  • Android Glide(一):源码分析,内存缓存和磁盘缓存的分析,实现流程以及生命周期
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Gradle 5.0 正式版发布
  • Iterator 和 for...of 循环
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java编程基础24——递归练习
  • java多线程
  • Less 日常用法
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • PV统计优化设计
  • Python学习之路16-使用API
  • vue-router 实现分析
  • XML已死 ?
  • Yeoman_Bower_Grunt
  • 闭包--闭包之tab栏切换(四)
  • 关于 Cirru Editor 存储格式
  • 观察者模式实现非直接耦合
  • 将 Measurements 和 Units 应用到物理学
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 普通函数和构造函数的区别
  • 驱动程序原理
  • 数据仓库的几种建模方法
  • 自制字幕遮挡器
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​数据结构之初始二叉树(3)
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • (3)nginx 配置(nginx.conf)
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (已解决)什么是vue导航守卫
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET学习全景图
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • /etc/fstab 只读无法修改的解决办法
  • [04]Web前端进阶—JS伪数组
  • [145] 二叉树的后序遍历 js
  • [1525]字符统计2 (哈希)SDUT