【发布时间】:2020-06-20 20:29:18
【问题描述】:
React-Native Animated:如何循环动画而不在每次循环后重置动画值。
我一直在努力寻找一种循环 React Native Animations 而不将动画值重置回其初始值的方法。
例如,我制作了一个简单的“摇摆”动画,可以左右移动我的组件
let animationX = new Animated.Value(0);
const left = (toValue) => Animated.timing(animationX, {toValue: -toValue, duration: 1500})
const right = (toValue) => Animated.timing(animationX, {toValue, duration: 1500})
const startSwayAnimation = () => {
Animated.loop(
Animated.sequence([
left(100),
right(100),
])
).start()
}
问题是我的 animationX 变量在每次循环后重置回 0。 我找不到任何有用的资源来说明如何在不重置值的情况下循环动画,尽管 github 上有两个死问题:
https://github.com/facebook/react-native/issues/18028 https://github.com/facebook/react-native/issues/20560
我几乎要考虑询问 SO,但后来我尝试创建一个递归函数来循环动画,效果很好
如果其他人为此苦苦挣扎,或者知道更好的解决方案(也许是一些我不知道的 Animated.loop 配置),我决定在 SO 上分享这个。
【问题讨论】:
标签: javascript react-native animation react-animated