你好,朋友和朋友,
我正在努力从此const中获取插值(数字):
const interpolatedValueY = this.state.scrollYAnimatedValue.interpolate({
inputRange: [0, 200],
outputRange: [0, -20]
})
我需要将此插值设置为其他Animated.Value
的{{1}}。
contentY
不幸的是,它没有用!它返回以下错误:
不变违反:无法插入非数字的输入。
好吧,如果我this.props.contentY.setValue(interpolatedValueY)
会显示数字。但是,如果我将其用作console.log(interpolatedValueY)
的输入,它将无法正常工作。
当我做this.props.contentY.setValue(...)
时,它打印了console.log(typeof interpolatedValueY)
,然后我开始尝试将这个“对象”转换为一个“数字”
我尝试了多种方法来获得该值:
object
答案 0 :(得分:0)
幸运的是我找到了!
神奇的 console.log('interpolatedValueY', interpolatedValueY) // It prints number alright as I said
console.log('interpolatedValueY stringed', `${interpolatedValueY}`) //[object Object]
console.log(`${interpolatedValueY}`) //[object Object]
console.log('typeof interpolatedValueY', typeof interpolatedValueY) //object
console.log('parseFloat(interpolatedValueY)', parseFloat(interpolatedValueY)) //NaN
console.log('parseFloat(interpolatedValueY) stringed', parseFloat(`${interpolatedValueY}`)) //NaN
console.log('parseInt(interpolatedValueY)', parseInt(interpolatedValueY)) //NaN
console.log('+interpolatedValueY', +interpolatedValueY) //NaN
console.log('interpolatedValueY*1', interpolatedValueY*1) //NaN
console.log('interpolatedValueY.toString()', interpolatedValueY.toString()) //[object Object]
console.log('interpolatedValueY._value', interpolatedValueY._value) // undefined
可以解决问题。
它返回一个带有我需要的数字的字符串。该字符串可以轻松,高效地完全转换为正确的数字对象。在此处查看有关如何将字符串转换为数字的更多信息:https://flaviocopes.com/how-to-convert-string-to-number-javascript/
我的最终解决方案是:
JSON.stringify(interpolatedValueY)
答案 1 :(得分:0)
您可以简单地以console.log(interpolatedValueY.__getValue())
的形式访问该值