怎么"这"在React组件方法中绑定了绑定

时间:2017-07-04 17:48:48

标签: reactjs

我在这里抽象了我的React代码。我没有绑定"这个"方法A()。也就是说,在构造函数中我没有这样做         this.A = this.A.bind(this); 也没有使用任何箭头语法进行绑定。 所以编译器无法知道A()中 this 的值是什么。 由于我在A()中使用了 this.map ,因此编译器应该为用法抛出错误。在检查Chrome开发工具中的代码时,我发现编译器似乎正在var _this2 = this自动正确地分配的值。我无法理解这种行为。有人可以解释一下这个。 (我是React的新手。如果这个问题听起来很傻,请小心)

class Test extends React.Component{
    constructor(props){
     super(props);
     this.map = [];
     this.state = { a: 1};
    }

    A(){
     // some complex logic 
     this.map = Complexlogic() ;  
    }

    componentWillMount(){
     this.A();
    }
}

1 个答案:

答案 0 :(得分:2)

React为此目的部分创建了类构造。按照设计,在类构造中创建的任何东西都绑定到对象上下文,就像在任何其他语言的类中一样。

为什么你经常会看到被约束的功能'内部类构造用于何时必须在类上下文之外传递,但是您希望维护该函数的对象的上下文。例如,当您将函数传递给渲染调用中的组件时。

至于为什么你会看到" _this2" - 它只是一种反应管理几种不同的方式"这个"在特定时间可用的上下文。