【问题标题】:How can I get the value from an animated or interpolated value in React Native?如何从 React Native 中的动画或插值中获取值?
【发布时间】:2019-05-16 22:16:52
【问题描述】:

简短的回答是:addListener。 每个动画变量都可以访问 addListener() 方法。对? 我们不应该从__getValue() 访问它。


我正在努力从这个 const 中获取插值(数字):

const interpolatedvalue = this.state.myanimvalue.interpolate({...})

我想从这个interpolatedvalue 中获取数值。我试图使用 __getValue(),但我意识到我不应该那样做。

请在下方查看我的回答,如果您需要帮助,请离开 cmets。

【问题讨论】:

    标签: javascript reactjs react-native react-animated


    【解决方案1】:

    您可以简单地以console.log(interpolatedValueY.__getValue()) 访问该值

    【讨论】:

    • userNativeDriver 为 true 好像不行。
    • @AlexandreLage,你确定它不起作用吗?因为我对useNativeDriver = true 使用了相同的程序并且它有效
    • @kreysix 在我的情况下也无法在 useNativeDriver=true 找到一些解决方案时请帮助我
    • @ofundefined 确定:下面是我使用的代码 Animated.decay(this.state.animation, { velocity: Direction, useNativeDriver: true, }).start() 和 "this.rotateInterPolate.__getValue () 是我获取价值的方式,但是当我评论 useNativeDriver 时它工作正常,当它是真的时,它没有给出正确的结果,只给出 0
    • @ParagJain 我刚刚更新了我的答案。所以你可以遵循正确的方法。我们不应该真正使用 __getValue()
    【解决方案2】:

    更新

    获取动画值的正确方法是使用监听器。

    https://reactnative.dev/docs/0.5/animatedvalue#addlistener

    因为官方文档说:

    addListener(...) 为值添加一个异步侦听器,以便您可以观察动画的更新。这很有用,因为无法同步读取该值,因为它可能是本机驱动的。

    如果动画是由native layer驱动的,我们是无法真正同步得到的。所以让我们始终使用addListener(value => {/*our logic to use value*/})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多