Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性';设置状态';在函数()中使用setState时的未定义值_Javascript_Reactjs - Fatal编程技术网

Javascript 无法读取属性';设置状态';在函数()中使用setState时的未定义值

Javascript 无法读取属性';设置状态';在函数()中使用setState时的未定义值,javascript,reactjs,Javascript,Reactjs,我需要把一个箭头函数转换成一个函数。这是由于光滑滑块的问题,因为它是 我已将此转换为: beforeChange={(current, next) => this.setState({slideIndex: next})} 为此: beforeChange={function(current, next) { this.setState({slideIndex: next}); }} 但是不起作用。已尝试此解决方案: beforeChange={function(current,

我需要把一个箭头函数转换成一个函数。这是由于光滑滑块的问题,因为它是

我已将此转换为:

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)}
这将把
这个
传递给函数,这样当引用
这个
时,函数中的这个将是通过
绑定
传递的

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


允许您手动传递上下文的其他函数有:,以及前面提到的。

因为
这个范围是错误的。使用箭头函数(
=>
时,此
保留,但使用
函数(){}
时,
有自己的作用域,因此
此.setState()
将不起作用,除非您使用
绑定函数。
绑定(此)
“这是由于滑动条有问题…”否,IE及其缺少的支撑是问题所在,而不是光滑的滑块。