【发布时间】:2018-08-25 10:18:48
【问题描述】:
React.Component 生命周期中的“this”怎么可能变成了不同的对象?
在render() 和componentDidMount() this 指向不同的对象?
- 我使用 React 16.0.0
- 所有生命周期方法只调用一次
- 我用 Webpack 转译 Typescript
- 我无法在浏览器中重复它,在浏览器
one === two // true - 我有一个非常大的应用程序,所以我认为可以对 ReactFiber 进行某种优化?
喜欢这里:JsBin
【问题讨论】:
-
你能把你的代码复制到你做测试的地方吗?能输出一和二的值吗?
-
它可能是一个副本而不是一个引用因此不同的对象值(在不同的时间分配)?
-
@ChrisR 添加了一个屏幕,Lukasz 关于你在谈论什么变量?
one和two或this -
@MiheyMik 在您的 JSBin 中返回
true(我必须将<div id ="app" />添加到 HTML 以便组件呈现)。 -
@MiheyMik 一和二,因为这是对对象的引用。我认为使用 Object.assign 复制属性作为新对象,因此您的快照会随着时间的推移而不同,因为 React 会更改一些道具。
标签: javascript reactjs react-fiber