我需要一个视图,以动画的地方时,一些 prop 的价值变化使用React本机复活
我只能找到动画,例如,一个用户点击使用onPress函数来改变useSharedValue值的值。但我似乎找不到如何动画时, prop 的变化。所以目前我使用useEffect。
export const SomeComponent = ({
top,
left
}) => {
const animation = useSharedValue({
top,
left
});
useEffect(() => {
animation.value = { top, left };
}, [top, left]);
const animationStyle = useAnimatedStyle(() => {
return {
top: withTiming(animation.value.top, {
duration: 1000
}),
left: withTiming(animation.value.left, {
duration: 1000
})
};
});
}
在上面的代码中, prop 可以改变值,我应该像现在这样用useEffect触发动画吗?或者有没有更好的方法只使用Reanimated。
1条答案
按热度按时间hfyxw5xn1#
有意思。这有用吗?我从没见过这么做的。
是的,useEffect是一个触发动画的好方法。通常我会这样做:
1.这些值被拆分成原语,我不知道这是否会影响性能--我以前从未将对象用作共享值。
1.风格直接来自共同的价值观。
我从来没有尝试过在样式中运行动画-似乎它不应该对我起作用,但我可能是错的!