Return 来自 React Native 插值函数的变量

Return variable from interpolate function in React Native

有没有办法 return 来自插值的本机反应值。我想使用现有的插值,而不是 运行 通过应用程序的附加状态,然后根据其当前值 return true 或 false。

然而,动画值不是可以存储在本机驱动程序之外的实际数字(据我所知),显然您不能执行以下操作,但以下是我实际上想要实现的.

var Active = this.props.status.interpolate({
    inputRange: [-1, 0, 1],
    outputRange: [false, true, false],
});

请记住,您发布的代码在每次渲染时仅 运行 一次。它本质上是一个插值声明

 const backgroundColor = position.interpolate({
   inputRange: [0, 100],
   outputRange: ['red', 'blue'],
  });

 //

 <View style={{ backgroundColor }} />

假设您的渲染被调用一次,它不会阻止您的视图在未来更改背景颜色以响应动画值更改,即使此渲染可能永远不会再次调用。那么,仅一次了解此动画的价值对您有帮助吗?即使你可以这样得到它,下次它改变时你也不会得到更新的值(除非你的渲染是由于其他一些不相关的原因而触发的)。该值不是反应性的,几乎总是对渲染目的没有用

执行此操作的正确方法是将侦听器附加到动画值

componentDidMount() {
  this.props.status.interpolate.addListener(({ value }) => {
    console.log('new value: ', value)
    this.lastKnownValue = value
  })
}

每次值更改时都会通知您。如果您仍想在渲染中访问此值,只需将其存储在某处(在基于 class 的组件的 class 属性 中,或在功能组件的 ref container 中)和在渲染期间从那里读取它