老莫的笔记本  
  
查看: 323|回复: 0

论如何解决监听方法中this默认是undefined的问题

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2022-4-26 11:42:45 | 显示全部楼层 |阅读模式
本帖最后由 周大胖子 于 2022-4-26 11:45 编辑

1. 通过箭头函数
2. 通过添加监听方法的时候,手动通过bind的方式来修改监听方法中的this ;(就是在onClick 里写)
3. 通过在构造函数中, 手动通过绑定bind的方式来修改监听方法中的this [这个是我以前常用的,但是其实我不是很喜欢]
4. 手动绑定一个箭头函数,然后再箭头函数的函数体中手动调用监听方法


                        <button  onClick={()=>{this.funa3()}}>  按钮 3   注意 有() ,因为这里直接是执行 </button>
               

     4.1 因为箭头函数种点 this,就是当前的实例对象;
     4.2 因为监听方法并不是react调用的,而是我们在箭头函数中调用的;
     4.3 以为葡萄的方法,默认情况下谁调用 this 就是谁

  推荐第四种【前三种都是react 调用, 只有第四种是我们自己调用的 ,优点在传参上,第四种传参更方便】

<button  onClick={()=>{this.funa3('1111',2222)}}>  按钮  </button>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表