【问题标题】:TypeError: this is undefined "React" [duplicate]TypeError:这是未定义的“反应”[重复]
【发布时间】:2020-07-13 05:10:33
【问题描述】:

出现类型错误,但是当我使用 onClick={()=>this.clickHandler()} 时,它就像魅力一样。那么当我使用 onClick={()=>this.clickHandler()} 时发生了什么,以及为什么我通过编写 onClick={this.clickHandler} 得到错误p>

constructor(props){
        super(props)
    }
    render() {
        return (
            <div>
                <button onClick={this.clickHandler}>Class click</button>
                {/* <button onClick={()=>this.clickHandler()}>Class click</button> */}
            </div>
        )
    }

    clickHandler(){
        this.logPrint()
    }
    logPrint(){
        console.log("click the button");

    }

【问题讨论】:

标签: javascript reactjs typescript es6-modules


【解决方案1】:

对事件处理程序使用箭头函数,它们会自动绑定 this:

clickHandler = () => {
    this.logPrint()
}

【讨论】:

    【解决方案2】:

    实现这一目标的两种方法

    使用箭头函数

    clickHandler: () => {
    
    }
    

    在构造函数中与组件的this绑定方法

    constructor(props){
        super(props);
        this.clickHandler = this.clickHandler.bind(this);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-11
      • 2020-05-06
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 2017-08-31
      • 2018-11-07
      相关资源
      最近更新 更多