我们都知道在React中使用函数时,有两种写法,一是回调函数,二是直接调用,但需要在构造函数中绑定this,只有这样,函数中的this才指向本组件

总结一下没有绑定this的函数中的this指向

不管是在本组件的元素上调用的函数还是传递给子组件的函数,不管有没有绑定this,它们调用的都是本组件里的函数,即调用函数的this指向的是本组件

例如: class Parent extends React.Component {

constructor(props) { supper(props); }

handleSubmit() {}

render() {

return (

<div>

<button onClick={this.handleSubmit}>点击按钮</button>

<Child  onFunc={this.handleSubmit} />

</div>

);

}

}

<button>与<Child />调用的都是Parent组件中的handleSubmit,不同的是handleSubmit函数中的this指向

<button>的handleSubmit中的this为undefined

<Child />的handleSubmit中的this指向Child组件的propTypes对象

更多专业前端知识,请上 【猿2048】www.mk2048.com

React之函数中的this指向相关推荐

  1. ES6箭头函数中的this指向

    1箭头函数中的this (1)箭头函数中没有this : 这意味着 call() apply() bind() 无法修改箭头函数中的this (2)箭头函数中的this指向 :访问上一个作用域的thi ...

  2. [react] render函数中return如果没有使用()会有什么问题?

    [react] render函数中return如果没有使用()会有什么问题? 我们在使用JSX语法书写react代码时,babel会将JSX语法编译成js,同时会在每行自动添加分号(:),如果retu ...

  3. 深入理解call、apply、bind(改变函数中的this指向)

    在JavaScript中call.apply.bind是Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这三个方法进行 ...

  4. JavaScript学习(七十)—函数中this的指向问题

    JavaScript学习(七十)-函数中this的指向问题 一.这些this的指向,是当我们调用函数的时候确定的,调用方式的不同决定了this的指向不同,一般指向我们的调用者

  5. 关于setTimeout函数中的this指向问题

    为什么setTimeout函数的延迟执行函数中this指向window,但是延迟执行函数是箭头函数this指向obj? 根据下面的两点原因解释,foo和foo2中的this都指向obj,但是其中set ...

  6. 关于函数中的this指向问题

    关于函数中的this指向问题 前言 一.普通函数中this指向 二.对象里面的this指向 三.函数表达式中的this指向 四.立即执行函数的this指向 五.定时器计时器中this的指向 六.箭头函 ...

  7. react事件处理函数中绑定this的bind()函数

    问题引入 import React, { Component } from 'react'; import {Text,View } from 'react-native';export defaul ...

  8. 嵌套函数中的this指向的对象

    來源:http://www.cnblogs.com/mier/archive/2009/05/07/1452231.html 我们通过一个测试来举出所有的情况,然后用自己的debug方法输出结果来判断 ...

  9. JS高级——深入剖析函数中的this指向问题

    一.this到底指向什么呢? 我们先说一个最简单的,this在全局作用域下指向什么? 这个问题非常容易回答,在浏览器中测试就是指向window 但是,开发中很少直接在全局作用于下去使用this,通常都 ...

最新文章

  1. 【Flutter】Animation 动画 ( Flutter 动画基本流程 | 创建动画控制器 | 创建动画 | 设置值监听器 | 设置状态监听器 | 布局中使用动画值 | 动画运行 )
  2. boost::fusion::fused_procedure用法的测试程序
  3. 框架写mysql插入为空_学习springMVC框架配置遇到的问题-数据写入不进数据库时的处理办法...
  4. AspNetForums 开发过程中的源代码管理
  5. 如何把平板的虚拟键盘关掉_想知道Win10电脑启动使用的是BIOS还是UEFI,这该如何分辨?...
  6. word2013+endnotex8参考文献导入
  7. 解密Google Deepmind AlphaGo围棋算法
  8. 不支持S/W HEVC(H265)解码的有效解决方案
  9. java题库管理考试管理源码,基于jsp的题库管理系统-JavaEE实现题库管理系统 - java项目源码...
  10. 《腾讯之道》读书笔记
  11. 用matlab进行频域分析,用matlab进行信号与系统的时频域分析
  12. java基于ssh的旅游系统
  13. scala学习笔记(十三):implicit 详解
  14. k8s主从自动切换mysql_K8S与Ceph RBD集成-多主与主从数据库示例
  15. 制作原型工具_15种顶级原型制作工具齐头并进
  16. 项目管理五大过程与十大知识领域
  17. Unity中训练一个ML-Agents项目—解决torch和mlagents配置问题
  18. 【python学习笔记——工具视频帧率计算器】
  19. 软件测试应该重点关注的测试过程
  20. 试验三 数据的更新

热门文章

  1. 远程声控系统(MATLAB代码见CSDN资源)
  2. 技术管理规划-路径跟资源
  3. php关于ob_start('ob_gzhandler')启用GZIP压缩的bug
  4. windows下命令行修改系统时间;修改系统时间的软件
  5. [解决]电信彩信网关开发错误-SOAP_VERSIONMISMATCH
  6. 防止DISCUZ根域名跳转到forum.php的方法
  7. mysql 列 随机数_mysql mmp 某字段插入随机数!(说不定那天就忘记了,存下来再说)...
  8. C error :Run-Time Check Failure #2 - Stack around the variable 'b' was corrupted.
  9. 移动端布局三种视口_前端基础:必须要知道的移动端适配(4)——视口
  10. lua检测表中是否有某个值_Lua检测数组(tabble)中是否包含某个值