问题引入

import React, { Component } from 'react';
import {Text,View
} from 'react-native';export default class App extends Component<Props> {constructor(props){super(props)this.state={times:0}this.timePlus=this.timePlus.bind(this);}timePlus(){let time=this.state.timestime++this.setState({times:time})}render() {return (<View><Text onPress={this.timePlus}>有本事点我呀</Text>        //<Text onPress={this.timePlus.bind(this)}>有本事点我呀</Text>        <Text>你点了我{this.state.times}次</Text> </View>     );  } }

每次在处理事件函数时都需要绑定this的bind函数;

bind() 最简单的用法是创建一个函数,使这个函数不论怎么调用都有同样的 this 值。

bind()方法会创建一个新函数,当这个新函数被调用时,它的this值是传递给bind()的第一个参数, 它的参数是bind()的其他参数和其原本的参数.

this.x = 9;
var module = {x: 81,getX: function() { return this.x; }
};module.getX(); // 返回 81
var retrieveX = module.getX;
retrieveX(); // 返回 9, 在这种情况下,"this"指向全局作用域// 创建一个新函数,将"this"绑定到module对象
var boundGetX = retrieveX.bind(module);
boundGetX(); // 返回 81

从实例可以看出:React构造方法中的bind会将handleClick函数与这个组件Component进行绑定以确保在这个处理函数中使用this时可以时刻指向这一组件。

源码地址:https://github.com/zuobaiquan/react-native/tree/master/myExercise/firstProject

转载于:https://www.cnblogs.com/zuobaiquan01/p/8728949.html

react事件处理函数中绑定this的bind()函数相关推荐

  1. 面试让写一个“bind”函数,详解五层bind函数进阶写法,带你写出一个让面试官满意的 “bind” 函数

    文章目录 手写bind函数 第一层 - 绑定在原型上的方法 第二层 - 改变this的指向 第三层 - 支持柯里化 第四层 - 考虑 new 的调用 第五层 - 保留函数原型 总结最终版bind函数 ...

  2. c语言中bind函数,c/c++ 标准库 bind 函数详解

    bind函数定义在头文件 functional 中.可以将 bind 函数看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对象来"适应"原对象的参数列表. bin ...

  3. 【C 语言】C 项目开发代码规范 ( 形参合法性判断 | 函数返回值局部变量 | 函数中不用全局变量 | 函数中使用局部变量接收形参 | 函数返回值 | 形参作返回值 | 形参返回值处理 )

    文章目录 一.C 项目开发代码规范 一.C 项目开发代码规范 上一篇博客 [C 语言]字符串模型 ( 键值对模型 ) 中 , 完成了字符串的 键值对 查找功能 , 代码不太规范 ; C 项目开发代码规 ...

  4. 编写一个C程序,实现以下功能:编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101。在main函数中输入整数n,调用函数,输出它的二进制

    题目要求: 编写一个C程序,实现以下功能: //编写一个函数decTobin(int n),该函数能将一个十进制数n转换成二进制数,输入13 输出 1101. //在main函数中输入整数n,调用函数 ...

  5. 定义两个同名的重载函数,分别求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能

    定义两个同名的重载函数,分别求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能. 求矩形的周长时需要输入矩形的长和宽:求圆的周长时需要输入圆的半径. #include<ios ...

  6. bind函数怎么用JAVA_JavaScirpt 的 bind 函数究竟做了哪些事

    JavaScirpt 的 bind 函数究竟做了哪些事 文章原地址: https://github.com/catchonme/blog/issues/2 ES5 实现 bind 函数如下Functi ...

  7. 如何在matlab sfunction 函数中调用自己写的函数?

    自己编写了一个s函数,有几个参数引用了自己写的几个函数,在脚本中可以正确运行,但在写成s函数,进行 simulink 仿真的时候,已知提示"too many input auguments& ...

  8. 凡是函数中未指定存储类型_函数中未指定存储类别的局部变量,其隐含的存储类别为()...

    展开全部 函数中未指定存储类别的局部变量,其隐含的存储类别为自动存32313133353236313431303231363533e59b9ee7ad9431333431353338储类别. 函数中的 ...

  9. JavaScript函数中的arguments(js函数中的arguments,函数默认参数arguments)

    简述:js中的函数大家都比较熟悉,今天来分享下函数中的默认参数arguments.js的函数参数和其他的语言有些不同,它并不介意你传进来多少个参数,以及参数的数据类型,即使你在定义函数时,只设置了两个 ...

最新文章

  1. IO 模拟 1/2 Bias、1/4 Duty的 LCD 驱动
  2. 【Python】洛谷 P1175_表达式的转换(逆波兰式、中缀表达式、后缀表达式、栈)
  3. Vue + Spring Boot 项目实战(三):使用IntelliJ IDEA快速生成 Vue.js 项目
  4. 读了鸿蒙 OS 的代码后,我发现优秀项目都有这个共性!
  5. some any oracle,Oracle之 any、some、all 解析
  6. Linux段错误-转
  7. 运行matlab生成多张图片后如何瞬间将图片全部关闭
  8. 你以为海淘产品能逃过海关法眼?大数据技术一网打尽
  9. 24.Plugin System
  10. 字节跳动开源!超好用的视频抠图工具;GitHub开源项目维护协作指南;自动化数据清洗工具包;强化学习入门教程;前沿论文 | ShowMeAI资讯日报
  11. Opencv模板匹配学习
  12. 使用Python实现一个简单的聊天室
  13. svn服务器搭建ip指定,mac 局域网svn服务器搭建
  14. .Net4.0 任务(Task)
  15. 中南大学移动宽带连接路由器解决方案
  16. 三个死刑犯的自白,哪个最牛?
  17. C# 在Excel中绘制图形
  18. Java截取字符串(substring)
  19. 关于 Intel CPU 和Iris Xe Graphics的报告问题
  20. 2023MathorCup 高校数学建模挑战赛D题思路解析

热门文章

  1. python高级语法装饰器_Python高级编程——装饰器Decorator超详细讲解上
  2. php前台用户权限开通,vue实现网站前台的权限管理
  3. 工业机器人用铸铁牌号_常用铸铁牌号
  4. mysql 的数据库实例理解_理解数据库和实例
  5. 0 win10重装partition_教你在安装WIN10系统中所遇到问题处理方法
  6. wxpython可视化_使用wxPython的绘图模块wxPyPlot进行数据可视化
  7. Win32ASM-进程学习[3]-读写进程空间
  8. 宏定义 #define 和常量 const 的区别
  9. 域名自动跳转不搭建服务器,宝塔搭建的服务器WEB系统环境如果做域名301跳转
  10. 零拷贝机制在文件传输中的使用手法