请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

class this

老师有同时上你框架课,有个地方不懂
所以回来这边再看一次基础课还是想不通?
关于react class组件 bind this的问题
照理click时,呼叫this.clickHandler1 = 呼叫这个class的clickHandler1方法
老师这边也说调用class方法里面的this ,应该要是实例本身
为什么react class方法的this就变undefined了
图片描述
图片描述
图片描述

正在回答

1回答

React 中 onClick={this.clickHandler1} 这里仅仅是一个赋值,并没有执行。js 中的函数,不执行,你永远都不知道 this 是什么。例如:

const obj = {
    fn: function() {
        console.log(this)
    }
}

const fn1 = obj.fn
fn1() // 这里执行时,this 是什么 window ,并不是 obj


1 回复 有任何疑惑可以回复我~
  • 提问者 慕瓜5414566 #1
    感谢老师提示,才发现有两次函数执行,
     所以老师render函数执行完
    onClick={this.clickHandler1} 变成 onClick = {clickHandler1},
    ,到真正click时这次执行的只有clickHandler1,(因为下一个函数执行时,上一次函数执行的this已经不看),变成普通函数了,所以里面的this会是undefined,不知道这样理解对不对
    回复 有任何疑惑可以回复我~ 2021-03-06 20:29:37
  • 双越 回复 提问者 慕瓜5414566 #2
    是的。
    回复 有任何疑惑可以回复我~ 2021-03-06 22:52:30
  • 提问者 慕瓜5414566 #3
    谢谢老师~!
    回复 有任何疑惑可以回复我~ 2021-03-07 00:35:41
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信