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 中)和在渲染期间从那里读取它
有没有办法 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 中)和在渲染期间从那里读取它