在使用本机组件状态的数据时,我遇到一个奇怪的问题。
我首先定义状态:
this.state = {
bonesPosition: {
black: [{x: 0, y: 0}, {x: 0, y: 0}, {x: 0, y: 0}],
white: [{x: 0, y: 0}, {x: 0, y: 0}, {x: 0, y: 0}]
}
};
然后我更新它:
const bonesPosition = {...this.state.bonesPosition};
bonesPosition.white[0].x = this.firstWhite.state.pan.x;
this.setState({bonesPosition})
但是当我尝试访问数据时,
const whiteX = this.state.bonesPosition.white[index].x;
console.log(whiteX)
console.log(typeof whiteX)
console.log(parseInt(whiteX))
console.log(Number(whiteX))
它向我显示了值,但是我可以用它来计算,因为它是一个对象。但是,如果我尝试将其转换为数字,它将不再确认数字值。
44.5
object
NaN
NaN
任何的想法?
最佳答案
可能是您拥有Animated.Value而不是简单的数字?
从pan
和bonesPosition推导,这看起来像panResponder
的代码
https://facebook.github.io/react-native/docs/animations.html#tracking-gestures
您应该检查自己获得的是什么样的价值/对象,并阅读动画文档。
希望这可以帮助