【问题标题】:Reanimated 2 can't use withSequence with direct valueReanimated 2 不能使用具有直接值的 withSequence
【发布时间】:2021-12-29 12:34:24
【问题描述】:

我想使用withSequence 直接值作为第一个值,使用下面的代码导致应用程序崩溃。

animatedValue.value = withSequence(startValue, withTiming(endValue));

下面的代码似乎运行良好,但在我的情况下,使用 withTiming 内的 startValue 并没有帮助。

animatedValue.value = withSequence(withTiming(startValue, {duration: 0}), withTiming(endValue));

【问题讨论】:

  • 通过编写这样的链式语句,您将状态发送到另一个钩子。但这取决于钩子是否将该值作为初始条件。因为否则钩子可能只使用一次。要让它工作,您需要知道withSequence 的输入参数是什么,初始值或运行时动态值。
  • @windmaomao 问题是我将一个数字传递给withSequance 函数并且它崩溃了。但不是动画值。这些不是状态,因为它们是共享值,它们用于 Reanimated 2 中的动画。

标签: javascript reactjs react-native react-native-reanimated react-native-reanimated-v2


【解决方案1】:

您可以在触发动画之前简单地将startValue 直接设置为animatedValue.value

animatedValue.value = startValue;
animatedValue.value = withTiming(endValue, { duration: 500 })

【讨论】:

  • 似乎 reanimated 由于某种原因跳过了第一个任务。
  • 哦,好吧,我又看了你的问题,意识到我没能消化你的最后一句话。 withSequence(withTiming(startValue, {duration: 0})... 和我的方法都适用于我,我怀疑你的代码中有一部分会导致阻止 startValue 被分配的副作用。您介意提供可重现的代码吗?
猜你喜欢
  • 2021-06-19
  • 2021-09-26
  • 2021-12-21
  • 2021-07-11
  • 2021-08-19
  • 2015-06-05
  • 1970-01-01
  • 2010-12-23
  • 2022-01-18
相关资源
最近更新 更多