Javascript 从处于反应状态的对象获取数值
在react本机组件状态下处理数据时,我遇到了一个奇怪的问题 我首先定义国家:Javascript 从处于反应状态的对象获取数值,javascript,reactjs,object,react-native,Javascript,Reactjs,Object,React Native,在react本机组件状态下处理数据时,我遇到了一个奇怪的问题 我首先定义国家: 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 bonesPosi
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
有什么想法吗 是不是有一个动画的.Value而不是一个简单的数字 从
pan
和bonesPosition推断,这看起来像是panResponder
您应该检查返回的是什么类型的值/对象,并通读动画文档
希望这对您有所帮助,您是否有一个动画的.Value而不是一个简单的数字 从
pan
和bonesPosition推断,这看起来像是panResponder
您应该检查返回的是什么类型的值/对象,并通读动画文档
希望这有帮助,因为它已经是一个数字了?
whiteX
是一个对象
,而不是数字或字符串
。因此,parseInt
很可能会失败whiteX
可以是具有重写的toString
或valueOf
方法的对象。您需要深入研究实现以找出确切的问题。为什么数字或字符串不是对象?什么是this.firstWhite.state.pan.x
?您可以设置调试器并检查whiteX
的原型是什么吗?因为它已经是一个数字了?whiteX
是一个对象,不是数字
或字符串
。因此,parseInt
很可能会失败whiteX
可以是具有重写的toString
或valueOf
方法的对象。您需要深入研究实现以找出确切的问题。为什么数字或字符串不是对象?this.firstWhite.state.pan.x
是什么?能否设置调试器并检查whiteX
的原型是什么?是的,谢谢!我必须将this.firstWhite.state.pan.x
更改为this.firstWhite.state.\u value.x
是的,谢谢!我必须将this.firstWhite.state.pan.x
更改为this.firstWhite.state.\u value.x