【发布时间】:2020-03-05 02:04:44
【问题描述】:
我需要将箭头函数转换为函数。这是由于 Slick Slider 的问题,因为它 does not support properly arrow functions。
我已经转换了这个:
beforeChange={(current, next) => this.setState({slideIndex: next})}
进入这个:
beforeChange={function(current, next) {
this.setState({slideIndex: next});
}}
但不起作用。已经尝试过这个解决方案:
beforeChange={function(current, next) {
this.setState(function() {
return {slideIndex: next};
});
}}
【问题讨论】:
-
因为
this范围是错误的。使用箭头函数时 (=>)this仍然存在,但使用function(){}时,this有自己的作用域,因此this.setState()将不起作用,除非您将函数与...}.bind(this)绑定 -
“这是由于 Slick Slider 的问题...” - 不,问题在于 IE 及其缺少的支持,而不是 Slick Slider。
标签: javascript reactjs