为什么将getSnapshotBeforeUpdate放入react中

问题描述 投票:0回答:1

我正在学习对生命周期方法做出反应,但陷入查询之中,即使经过大量的网络研究也无法找到答案。

根据react官方文档here,据说方法getSnapshotBeforeUpdate用于在DOM提交之前执行某些操作。此函数返回的快照稍后将由componentDidUpdate使用。

查询:方法componentDidUpdate中已经存在参数'prevProps'和'prevState',那么为什么它需要功能getSnapshotBeforeUpdate的帮助?我的意思是功能componentDidUpdate具有必要的输入以执行getSnapshotBeforeUpdate正在进行的操作。

任何帮助将不胜感激。

最好,拉胡尔

reactjs react-lifecycle
1个回答
1
投票

[在文档中明确地举例说明,getSnapshotBeforeUpdate方法的目的不仅仅是从prevProps和/或prevState中获取信息。

但是可用于在更新DOM之前从先前的DOM中提取一些信息(例如div的当前滚动位置)。在大多数情况下,prevPropsprevState可能不涵盖此类与DOM相关的值。

仅考虑componentDidUpdate方法时,调用时DOM已经更新(因此名称为[[Did Update)”。因此,到那时为止,与先前DOM相关的所有信息都已经丢失。

因此,从getSnapshotBeforeUpdate中提取的有关先前DOM的信息可以传递到componentDidUpdate方法以在其中使用。
© www.soinside.com 2019 - 2024. All rights reserved.