首页 > 在React中的语法问题……

在React中的语法问题……

这里报错了,进去看看,我是这么写的:

于是我把代码改成这样:

错误就消失了啊……为什么啊?react 不支持ES5的语法么?


这应该是一个this指向的问题,在您一开始的ES5代码中,第二个this指向的是,setState这个方法,如果您改成这样,就不会报错了。

handleToggle(){
    var that = this;
    this.setState({
        open:!that.state.open,
    });
}

而在ES6当中,箭头函数的函数体内的this对象,绑定的是定义时所在的对象,而不是使用时所在的对象,所以您用箭头函数的写法就不会报错了。


@webFunc 思路是对的,但是这么我觉得会报错,应该是

handleToggle = ()=>{}

或者在构造函数里加一句

this.handleToggle = this.handleToggle.bind(this);
【热门文章】
【热门文章】