Skip to content

getSnapshotBeforeUpdate() ​

本节目标:理解“getSnapshotBeforeUpdate()”的核心思路,并能把它用于实际开发或面试表达。

说明:原 OneNote 中有图片引用,但图片未包含在导出目录中;本页保留了可用的文字与代码内容。 getSnapshotBeforeUpdate()

  • 被调用于render之后,可以读取但无法使用DOM的时候。
  • 返回一个值,作为componentDidUpdate的第三个参数;
  • 配合componentDidUpdate, 可以覆盖componentWillUpdate的所有用法

1:在render之前调用,state已更新

2:典型场景:获取render之前的dom状态

例一:

每一秒钟都会加入一个新的\<div\>msg : number\</div\>

假如我们使用滑轮移到某个地方,内容物会随着时间不断下降,因为新生成的div会把它挤下来,如何保持不动了?

\<script type = 'text/babel'\>


</script>

  .wrap{
    height: 100px;
    width :200px;
    padding: 1px solid #eee;
    overflow:auto;
  }

关键在于通过getSnapshotBeforeUpdate方法,获取dom信息,然后通过componentDidUpdate反映。 例二:

本站总访问 — 次