周大胖子 发表于 2022-4-26 11:42:45

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

本帖最后由 周大胖子 于 2022-4-26 11:45 编辑

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


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

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

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

<buttononClick={()=>{this.funa3('1111',2222)}}>按钮</button>
页: [1]
查看完整版本: 论如何解决监听方法中this默认是undefined的问题