我正在学习对生命周期方法做出反应,但陷入查询之中,即使经过大量的网络研究也无法找到答案。
根据react官方文档here,据说方法getSnapshotBeforeUpdate用于在DOM提交之前执行某些操作。此函数返回的快照稍后将由componentDidUpdate使用。
查询:方法componentDidUpdate中已经存在参数'prevProps'和'prevState',那么为什么它需要功能getSnapshotBeforeUpdate的帮助?我的意思是功能componentDidUpdate具有必要的输入以执行getSnapshotBeforeUpdate正在进行的操作。
任何帮助将不胜感激。
最好,拉胡尔
[在文档中明确地举例说明,getSnapshotBeforeUpdate
方法的目的不仅仅是从prevProps
和/或prevState
中获取信息。
但是可用于在更新DOM之前从先前的DOM中提取一些信息(例如div的当前滚动位置)。在大多数情况下,prevProps
或prevState
可能不涵盖此类与DOM相关的值。
仅考虑componentDidUpdate
方法时,调用时DOM已经更新(因此名称为[[Did Update)”。因此,到那时为止,与先前DOM相关的所有信息都已经丢失。
getSnapshotBeforeUpdate
中提取的有关先前DOM的信息可以传递到componentDidUpdate
方法以在其中使用。