gpt4 book ai didi

javascript - 在 function() 内使用 setState 时无法读取未定义的属性 'setState'

转载 作者:行者123 更新时间:2023-12-02 22:35:14 29 4
gpt4 key购买 nike

我需要将箭头函数转换为函数。这是由于 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};
});
}}

最佳答案

使用bind将上下文传递给函数:

beforeChange={function(current, next) {
this.setState({slideIndex: next});
}.bind(this)}

这会将 this 传递给函数,以便在函数内引用 this 时将是通过 bind 传递的。

箭头函数会自动执行此操作,它们将调用它们的上下文传递给函数本身,因此通过删除箭头函数,您删除了正确的上下文。

允许您手动传递上下文的其他函数有:apply , call和前面提到的bind .

关于javascript - 在 function() 内使用 setState 时无法读取未定义的属性 'setState',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58766564/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com