我希望能够更改toValue
响应道具更新的动画。React Native Animated
API的官方文档指出 spring 方法
根据基于阻尼谐波振荡的解析弹簧模型对值进行动画处理。跟踪速度状态以在 toValue 更新时创建流体运动,并且可以链接在一起。
但是,我还没有找到任何我们可以更新的地方toValue
。基本上,我的组件如下所示:
const ProgressBar = ({ loadPercentage }) => {
const loadAnim = useRef(new Animated.Value(0)).current;
useEffect(() => {
animation.current = spring(loadAnim, {
toValue: loadPercentage,
}).start();
}, [loadAnim, loadPercentage]);
....
}
这不适用于所有情况。特别是如果loadPercentage
更改过于频繁,组件会占用大量资源。这有点道理,因为我正在为每次更新创建一个新动画。相反,我想简单地修改toValue
而不启动新动画或类似的东西。
这似乎很基本,但经过 4 小时的尝试/谷歌搜索后,我放弃了。-.-
以防万一,我也尝试过使用react-native-reanimated
,但也没有运气。