5-4深入了解react组件关于this的问题,为什吗点击之后找不到this不懂,老师可以详细说下吗,或者推荐个文章

来源:5-4 深入了解React(React组件)

慕粉1902362591

2018-02-06

class ES6Component extends  React.Component{
   constructor(props){
       super(props);
       console.log(this);
       this.state={
           name:"Rosen,wen",
           age:18
       };
       // this.handleClick=this.handleClick.bind(this);
   }
   handleClick(){
       console.log(this);
       console.log("onclick");
       this.setState({
           age:this.state.age+1
       })
   }
   render(){

       return (
           <div>
               <h1>{this.state.name}</h1>
               <p> I am {this.state.age}year old</p>
               <button onClick={this.handleClick}>加以岁</button>
       </div>)
   };
}
// let jsx=<div style={style} className="jsx">jsx....</div>;
ReactDOM.render(<div><ES6Component name="liang"/></div>,document.getElementById('app'),function () {

});

写回答

1回答

Rosen

2018-02-07

 <button onClick={this.handleClick}>加以岁</button>这么写的话类似下面这种事件的绑定,事件回调以后作用域变了,在事件回调里用this就不是指向obj了。

var obj = {

    handleClick(){

        // do something

    }

    bindEvent(){

        $('button').click(function(){

            // 这里handleClick会找不到

            this.handleClick()

        });

    }

}


2
1
慕粉1902362591
非常感谢!
2018-02-07
共1条回复

React16+React-Router4 打造企业级电商后台管理系统

【毕设面试】让缺乏框架开发经验的你掌握框架开发

976 学习 · 405 问题

查看课程