本小节讲述在 React 中为 button 设置点击事件的注意点

1 前言

在 React 中,事件的名称都是 React 中提供的,因此名称的首字母必须厉害 例如

onClick      onMouseOver

然后为事件提供的处理函数如下

onClick ={function}

2 为button 设置点击事件

2.1 无参数的点击事件
import React from 'react';export default class EventItem extends  React.Component {render() {return (<div><h2>React中设置按钮的点击事件</h2><button onClick={this.show}> 按钮一 </button></div>);}show(){console.log("button的 点击事件")}
}

或者是

import React from 'react';export default class EventItem extends React.Component {render() {return (<div><h2>React中设置按钮的点击事件</h2><button onClick={()=>this.show()}> 按钮一</button></div>);}show = () => {console.log('button的 点击事件');};}
2.2 有参数的点击事件
import React from 'react';export default class EventItem extends React.Component {render() {return (<div><h2>React中设置按钮的点击事件</h2><button onClick={() => this.show2('这里是传递的参数')}> 按钮二</button></div>);}show2 = (pro) => {console.log('button 的点击事件 这里是传递的参数' + pro.toString());};
}
2.3 点击按钮修改私有属性值

在 React 中,如要修改 state 中的数据,推荐使用 this.setState({})
如下:

import React from 'react';export default class EventItem extends React.Component {constructor() {super();this.state = {message: '这里是初始化的数据'};}render() {return (<div><h2>React中设置按钮的点击事件</h2><button onClick={() => this.updateMessage('这里是新的数据')}>点击修改数据</button></div>);}updateMessage = (pro) => {this.setState({message: pro});};
}

需要注意的是:

  • 如果 state 中有多个属性的话,调用 setState 刷新数据时,只会把对应的 state 中属性值状态更新,而不会覆盖其它的
  • setState 方法执行是异步执行的

如果是想在 setState 执行结束后,我们再获取修改的属性的值或者其他的一些同步的后续操作,可以为 setState 设置一个回调函数

    this.setState({message: pro}, function() {console.log('这里是回调')});
2.4 React 中绑定文本框与 state 中的值
import React from 'react';export default class EventItem extends React.Component {constructor() {super();this.state = {message: '这里是初始化的数据',name: '初始化的name'};}render() {return (<div><h2>React中设置按钮的点击事件</h2><p>输入姓名 <input type="text" style={{width: '20%'}} value={this.state.name} onChange={(e) => this.textChange(e)}/></p></div>);}textChange = (e) => {//  获取当前实时输入的文本框的值console.log(e.target.value);//  第二种方式// console.log(this.refs.txt.value);this.setState({name:e.target.value})};

React基础篇(六)React中绑定事件的注意点相关推荐

  1. react中绑定点击事件_在React中绑定事件处理程序的最佳方法

    react中绑定点击事件 by Charlee Li 通过李李 在React中绑定事件处理程序的最佳方法 (The best way to bind event handlers in React) ...

  2. 这就是为什么我们需要在React的类组件中绑定事件处理程序

    by Saurabh Misra 索拉·米斯拉(Saurabh Misra) 这就是为什么我们需要在React的类组件中绑定事件处理程序 (This is why we need to bind ev ...

  3. ASP.NET Google Maps Javascript API V3 实战基础篇一获取和设置事件处理程序中的属性...

    ASP.NET Google Maps Javascript API V3 实战基础篇一获取和设置事件处理程序中的属性 <%@ Page Language="C#" Auto ...

  4. Vue基础篇六:Vue使用JSX进行动态渲染

    系列文章目录 Vue基础篇一:编写第一个Vue程序 Vue基础篇二:Vue组件的核心概念 Vue基础篇三:Vue的计算属性与侦听器 Vue基础篇四:Vue的生命周期(秒杀案例实战) Vue基础篇五:V ...

  5. Nginx实战基础篇六 通过源码包编译安装部署LNMP搭建Discuz论坛

    Nginx实战基础篇六 通过源码包编译安装部署LNMP搭建Discuz论坛 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 您可以自由复制.发行.展览. ...

  6. JQuery在循环中绑定事件的问题详解

    JQuery在循环中绑定事件的问题详解 有个页面上需要N个DOM,每个DOM里面的元素ID都要以数字结尾,比如说 ? 1 2 3 <input type="text" nam ...

  7. jQuery中绑定事件的几种方法

    以click事件为例,jQuery中绑定事件有三种方法: (1)target.click(function(){});  (2)target.bind("click",functi ...

  8. React基础篇(二)之点击button修改属性值

    本篇将实现点击一个按钮动态修改数据 上一篇 React 项目的初始化创建 1 index.html 中 <!DOCTYPE html> <html lang="en&quo ...

  9. React基础篇(四)之创建组件方式分析

    本小将讲述在 React 中, 1.通过函数 function 方式创建组件并分离成单独的组件实现,然后传递参数给组件使用 2.通过 关键字 class 来创建组件,并分离成单独的组件实现,然后传递参 ...

最新文章

  1. Kazoo安装和使用
  2. python中font_Python ColorFont包_程序模块 - PyPI - Python中文网
  3. boost::biconnected_components用法的测试程序
  4. bash的RANDOM变量生成的是真正的随机数吗
  5. VC6,SDI视图改变背景颜色的方法
  6. python urlretrieve_使用urllib库的urlretrieve()方法下载网络文件到本地的方法
  7. 一种非常简单的静态网页生成方法介绍
  8. 0bug到底碰痛了谁的神经?
  9. 试用 P、V操作描述下列理发师和顾客之间的同步问题
  10. 精确地计算Web页面中滚动条的宽度
  11. 云服务器快照——是“后悔药”也是“任意门”
  12. EJB-02:EJB开发流程
  13. 使用matlab编写协方差矩阵计算矩阵
  14. AVX贴片钽电容标识
  15. PowerApps 中的 Filter、Search 和 LookUp 函数
  16. Togaf业务架构-《企业级业务架构设计方法论与实践》解读
  17. Android小钢琴
  18. Linux上编译并配置opencv-3.3.0过程
  19. 分享一款市面比较好用的收款工具, SHOUK8 个人微信支付宝收款工具 微信支付宝财付通免签约收款即时到帐辅助
  20. 修改服务器端口后防火墙要设置吗,服务器设置完防火墙需要重启吗

热门文章

  1. 重大变动:OpenCV拟更改授权协议!
  2. python数值计算
  3. Matlab线性/非线性规划优化算法(7)
  4. oracle复杂的子查询,Oracle 子查询(复杂select语句)
  5. c#日期转换周几_RPA经验:使用 selector 选择日期
  6. python写剧情文字游戏_文字游戏引擎试用心得之一:Ren'py 和 Fungus
  7. ssh 登陆错误后禁止ip再次登陆_macOS破坏SSH默认规则,程序员无法登录Web服务器...
  8. Unity3D-GUI初试
  9. ode45 matlab 出错,请问,Matlab用ODE45解微分方程,出错
  10. 华为搭载鸿蒙系统的手表,华为手表Watch 3即将发布:搭载鸿蒙系统