React.Component' this'在ComponentDidMount中更改

时间:2018-03-16 11:02:59

标签: javascript reactjs react-fiber

怎么可能'这个'在React.Component生命周期中已经改变为不同的对象? 在render()componentDidMount() this指向不同的对象?

  1. 我使用React 16.0.0
  2. 所有生命周期方法只调用一次
  3. 我使用Webpack转换Typescript
  4. 我无法在浏览器中使用浏览器one === two // true
  5. 重复此操作
  6. 我有非常大的应用程序,所以我认为可以对ReactFiber进行某种优化?
  7. 像这里:JsBin

    This is changed enter image description here

2 个答案:

答案 0 :(得分:0)

如您所见,two有更多属性。这是因为在构造函数中的第一个输出它是一个纯Javascript类。然后,React出现并在渲染之前,期间和之后改变类。

答案 1 :(得分:0)

举个例子:

var a = {one:"1"};

var b = a;

a==b  // true
a===b // true
var c = Object.assign({}, a);

c     //{one: "1"}
a===c // false
a==c  // false

Object.assign的调用创建了一个对象副本,从而产生了不平等。