【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);
以上是 【React】在React中的语法问题…… 的全部内容, 来源链接: utcz.com/a/76683.html