我正在使用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,但是我无法访问其中的值,这是我做错了吗?
答案 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"});
})
一切正常。