React native 如何使用钩子制作动画?

React native 如何使用钩子制作动画?,react-native,React Native,大家好,我正在用钩子和功能组件进行动画实验 正如预期的那样,它工作得很好,但我对我的代码没有什么疑惑 让我解释一下 const [ProgressAnimation] = useState(new Animated.Value(0)); const [progress, setProgress] = useState(0); 使用此选项存储动画值 React.useEffect(() => { Animated.timing(ProgressAnimation, {

大家好,我正在用钩子和功能组件进行动画实验 正如预期的那样,它工作得很好,但我对我的代码没有什么疑惑

让我解释一下

const [ProgressAnimation] = useState(new Animated.Value(0));
const [progress, setProgress] = useState(0); 
使用此选项存储动画值

React.useEffect(() => {
    Animated.timing(ProgressAnimation, {
      toValue: progress,
      duration: 500,
    }).start();
  });
使用effect来处理更新进度条,因此
进度
是每500ms更新一次本地状态

const animatedWidth = ProgressAnimation.interpolate({
    inputRange: [0, totalProgress],
    outputRange: ['0%', '100%'],
  });
我的问题是,
progress
值设置为每500毫秒一次,所以我每500毫秒渲染一次。我做得对,或者需要更改流


对不起我的英语

你能为你的动画增加一点细节吗?我不太清楚如何设置
progress
totalProgress
以及设置它们时预期的效果。此外,由于您从未使用<代码> SETTER <代码>一半的代码> PrimeStudioStudio状态,您可能会考虑<代码> USERF <代码>,而不是<代码> UsStuts<代码>。您能为您的动画添加更详细的您想要的结果吗?我不太清楚如何设置
progress
totalProgress
以及设置它们时预期的效果。此外,由于您从未使用<代码> SETTER <代码>一半的代码> PrimeStudioStudio状态,您可能会考虑<代码> USERFE/COD>而不是<代码> UsStuts<代码>。