组件属性更改时应如何激活LayoutAnimation?

React Native LayoutAnimation允许在下一个布局出现时自动将视图动画化到新位置。

我有一些存储在Redux中的项目,这些项目作为属性传递到呈现它们的组件中。当属性更改时,我希望组件内容相应地进行动画处理。但是,我不确定要在组件中的何处调用LayoutAnimation.configureNext()

componentWillUpdate方法似乎是在渲染之前被调用的正确位置,但是该方法是deprecated and going to be removedcomponentDidUpdate为时已晚,因为渲染/布局已经进行。

我通过将属性复制到组件状态并在LayoutAnimation.configureNext()中调用componentDidUpdate使其工作,这迫使第二次使用动画重新渲染。这样做的好处可能是,可以将此组件的更新与以前的渲染周期(可能具有其他组件更新)稍微隔离开来,但这似乎很麻烦。

应在生命周期中的何处调用LayoutAnimation.configureNext()

dahom 回答:组件属性更改时应如何激活LayoutAnimation?

事实证明,当属性更改时,在LayoutAnimation.configureNext()componentDidUpdate中调用useEffect确实会产生动画。虽然这些方法是在render()之后调用的,但显然在实际布局和屏幕显示之前调用了它们。

我无法找到将这些阶段分开的有关回调/布局/渲染生命周期的任何文档,但是凭经验可以正常工作。

本文链接:https://www.f2er.com/2436393.html

大家都在问