首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >问题:使用Animated.timing().start的setTimeOut

问题:使用Animated.timing().start的setTimeOut
EN

Stack Overflow用户
提问于 2020-12-29 19:37:54
回答 1查看 158关注 0票数 0

我在react-native中遇到了一个动画(Animated)问题。

代码语言:javascript
复制
setTimeout(() => { AnimationToStart(onClose)); }, 1000);

当我不使用setTimeOut时,动画运行得非常好,但是当我使用它并且达到1000ms时,只有onClose会被执行,但动画不会。

下面是我的钩子,我从那里获得AnimationToStart

代码语言:javascript
复制
    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 };
};

有谁有主意吗?

EN

回答 1

Stack Overflow用户

发布于 2020-12-29 20:04:22

setTimeout()具有以下语法:

代码语言:javascript
复制
setTimeout(Function, Time in miliseconds);

例如:

代码语言:javascript
复制
setTimeout(function example(){console.log("example")}, 1000);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65491531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档