【发布时间】:2020-08-12 02:49:59
【问题描述】:
在实现影响许多不同元素或同一组件的许多实例的过渡动画时,是否有关于在何处控制动画的最佳实践?我玩过两种不同的方法,但我不确定哪个更好。
一个选项是让树中最高的组件创建一个 Animated.Value 作为从 0 到 1 的计时器。它将这个计时器作为道具向下传递给后代,后代使用 Value.interpolate用它做他们需要做的事情。这符合 React 向上移动状态的设计原则,但是将 Animated.Value 作为道具传递感觉很奇怪(尽管它工作得很好)并且总是需要对值进行插值才能有用。
另一个选项是传递一个布尔属性,例如“isTransitioning”。后代每个都有自己的 Animated.Value 并有一个 useEffect 钩子,当 isTransitioning 切换为 true 时启动动画。
【问题讨论】:
标签: reactjs react-native animation react-animated