我在react-native中遇到了一个动画(Animated)问题。
setTimeout(() => { AnimationToStart(onClose)); }, 1000);当我不使用setTimeOut时,动画运行得非常好,但是当我使用它并且达到1000ms时,只有onClose会被执行,但动画不会。
下面是我的钩子,我从那里获得AnimationToStart
const useAnimation = ({
values = { initialValue: 0, finalValue: 1 },
stylesToAnimate = {
styleOpacity: { start: 0, end: 1 },
styleTop: { start: 60, end: 0 },
},
duration = 300,
easing = Easing.inOut(Easing.ease),
}: IHook) => {
const { initialValue, finalValue } = values;
const { styleOpacity, styleTop } = stylesToAnimate;
const animatedValue = useRef(new Animated.Value(initialValue)).current;
const top = animatedValue.interpolate({
inputRange: [initialValue, finalValue],
outputRange: [styleTop.start, styleTop.end],
});
const opacity = animatedValue.interpolate({
inputRange: [initialValue, finalValue],
outputRange: [styleOpacity.start, styleOpacity.end],
});
const AnimationToEnd = () => {
Animated.timing(animatedValue, {
toValue: finalValue,
duration,
useNativeDriver: true,
easing,
}).start();
};
const AnimationToStart = (end = () => {}, delay = 0) => {
Animated.timing(animatedValue, {
toValue: initialValue,
duration,
useNativeDriver: true,
delay,
}).start(() => end());
};
const animatedStyles = { top, opacity };
return { animatedStyles, AnimationToStart, AnimationToEnd };
};有谁有主意吗?
发布于 2020-12-29 20:04:22
setTimeout()具有以下语法:
setTimeout(Function, Time in miliseconds);例如:
setTimeout(function example(){console.log("example")}, 1000);https://stackoverflow.com/questions/65491531
复制相似问题