Reactjs 通过函数调用获取引用

Reactjs 通过函数调用获取引用,reactjs,Reactjs,我正在尝试从以下位置复制React代码: 上面的代码不应该与ES6版本相同吗?我不明白为什么它不起作用。如果您对完整的代码感兴趣,这里是:ES5和ES6箭头符号使用不同的此 具体地说,使用箭头符号,这个在词汇上绑定到周围的函数(因此它指的是类) 使用ES5时,您需要将此绑定到您的函数。ES5和ES6箭头符号使用不同的此 具体地说,使用箭头符号,这个在词汇上绑定到周围的函数(因此它指的是类) 使用ES5时,您需要将此绑定到您的函数。es6版本使用箭头函数,它会自动将函数绑定到现有范围。那么比如说,

我正在尝试从以下位置复制React代码:


上面的代码不应该与ES6版本相同吗?我不明白为什么它不起作用。如果您对完整的代码感兴趣,这里是:

ES5和ES6箭头符号使用不同的

具体地说,使用箭头符号,
这个
在词汇上绑定到周围的函数(因此它指的是类)


使用ES5时,您需要将
绑定到您的函数。

ES5和ES6箭头符号使用不同的

具体地说,使用箭头符号,
这个
在词汇上绑定到周围的函数(因此它指的是类)


使用ES5时,您需要将此绑定到您的函数。

es6版本使用箭头函数,它会自动将函数绑定到现有范围。那么比如说,

function(c) {this.searchBox = c}
未绑定到组件的实例,而

c => this.searchBox = c
是。在第一个例子中,很难知道这是什么,但在第二个例子中,我们可以非常确定这是对我们组件的引用。如果您想让您的解决方案在es5中工作,您需要手动绑定,如下所示

render: function() {
    return (
        <input type="text" ref={(function(c) {this.searchBox = c}).bind(this)} />
    );
}
render:function(){
返回(
);
}

es6版本使用箭头函数,自动将函数绑定到现有作用域。那么比如说,

function(c) {this.searchBox = c}
未绑定到组件的实例,而

c => this.searchBox = c
是。在第一个例子中,很难知道这是什么,但在第二个例子中,我们可以非常确定这是对我们组件的引用。如果您想让您的解决方案在es5中工作,您需要手动绑定,如下所示

render: function() {
    return (
        <input type="text" ref={(function(c) {this.searchBox = c}).bind(this)} />
    );
}
render:function(){
返回(
);
}