无法访问Javascript对象的值

时间:2020-04-23 16:57:18

标签: javascript node.js reactjs

我正在使用React开发一个WebApp,在访问javascript对象中的数据时遇到问题,这是代码:

      const user_position = System.prototype.getUserPosition();

console.log({user_position:user_position,latitude:user_position.latitude,longitude:user_position["longitude"]})

        position_update.latitude = user_position.latitude;
        position_update.longitude = user_position.longitude;
        position_update.timestamp = user_position.timestamp

        this.setState({currentSearchSelection: "La tua posizione"});

我想访问user_position对象中的数据,但是输出结果很奇怪:

{user_position: {…}, latitude: undefined, longitude: undefined}
latitude: undefined
longitude: undefined
user_position:
latitude: 41.818550699999996
longitude: 12.495401099999999
timestamp: 1587660938111
__proto__: Object
__proto__: Object

基本上,已填充user_position,但是我无法访问其中的值,这是我做错了吗?

2 个答案:

答案 0 :(得分:1)

如果知道对象中确切值的名称,则可以直接获取它: console.log(user_position.object_name)

现在,这是说您的user_position是一个对象,并且已定义。

甚至可以尝试仅打印该user_object console.log(user_object)来查看其中的内容。

答案 1 :(得分:0)

感谢大家的支持,答案很简单:getUserPosition()方法是异步的(即使它没有被标记为它),因此该特定类的代码没有错,发生了什么事:

    user_position.object_name // print undefined since user_position is not populated

    user_position // print value because the variable is linked to the result of the async method

所以我所做的是使用回调编辑代码:

System.prototype.getUserPosition().then(user_position=>{

        position_update.latitude = user_position.latitude;
        position_update.longitude = user_position.longitude;
        position_update.timestamp = user_position.timestamp

        this.setState({currentSearchSelection: "La tua posizione"});
})

一切正常。