从React状态的对象获取数字值

时间:2018-03-19 08:07:03

标签: javascript reactjs object react-native

在处理react-native组件状态的数据时,我遇到了一个奇怪的问题。

我首先定义状态:

    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

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

可能是,你有一个Animated.Value而不是一个简单的数字?

pan和bonesPosition推导出这看起来像panResponder的代码

https://facebook.github.io/react-native/docs/animations.html#tracking-gestures

您应该检查您正在返回的值/对象类型并阅读动画文档。

希望这有帮助