File tree 1 file changed +2
-2
lines changed
1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -198,7 +198,7 @@ componentDidMount()
198
198
199
199
这个方法是比较适合添加订阅的地方。如果添加了订阅,请不要忘记在 ` componentWillUnmount() ` 里取消订阅
200
200
201
- 你可以在 ` componentDidMount() ` 里** 可以直接调用 ` setState() ` ** 。它将触发额外渲染,但此渲染会发生在浏览器更新屏幕之前。如此保证了即使在 ` render() ` 两次调用的情况下,用户也不会看到中间状态。请谨慎使用该模式,因为它会导致性能问题。通常,你应该在 ` constructor() ` 中初始化 state。如果你的渲染依赖于 DOM 节点的大小或位置,比如实现 modals 和 tooltips 等情况下,你可以使用此方式处理
201
+ 你可以在 ` componentDidMount() ` 里** 直接调用 ` setState() ` ** 。它将触发额外渲染,但此渲染会发生在浏览器更新屏幕之前。如此保证了即使在 ` render() ` 两次调用的情况下,用户也不会看到中间状态。请谨慎使用该模式,因为它会导致性能问题。通常,你应该在 ` constructor() ` 中初始化 state。如果你的渲染依赖于 DOM 节点的大小或位置,比如实现 modals 和 tooltips 等情况下,你可以使用此方式处理
202
202
203
203
* * *
204
204
@@ -221,7 +221,7 @@ componentDidUpdate(prevProps) {
221
221
}
222
222
```
223
223
224
- 你也可以在 ` componentDidUpdate() ` 中** 直接调用 ` setState() ` ** ,但请注意** 它必须被包裹在一个条件语件里 ** ,正如上述的例子那样进行处理,否则会导致死循环。它还会导致额外的重新渲染,虽然用户不可见,但会影响组件性能。不要将 props “镜像”给 state,请考虑直接使用 props。 欲了解更多有关内容,请参阅[ 为什么 props 复制给 state 会产生 bug] ( /blog/2018/06/07/you-probably-dont-need-derived-state.html ) 。
224
+ 你也可以在 ` componentDidUpdate() ` 中** 直接调用 ` setState() ` ** ,但请注意** 它必须被包裹在一个条件语句里 ** ,正如上述的例子那样进行处理,否则会导致死循环。它还会导致额外的重新渲染,虽然用户不可见,但会影响组件性能。不要将 props “镜像”给 state,请考虑直接使用 props。 欲了解更多有关内容,请参阅[ 为什么 props 复制给 state 会产生 bug] ( /blog/2018/06/07/you-probably-dont-need-derived-state.html ) 。
225
225
226
226
如果组件实现了 ` getSnapshotBeforeUpdate() ` 生命周期(不常用),则它的返回值将作为 ` componentDidUpdate() ` 的第三个参数 “snapshot” 参数传递。否则此参数将为 undefined。
227
227
You can’t perform that action at this time.
0 commit comments