React Native 使用变量从另一个JSON构建部分JSON

ewm0tg9j  于 2023-03-03  发布在  React
关注(0)|答案(1)|浏览(99)

我在我的react-native项目中使用expo-location库的getCurrentPositionAsync

result = await Location.getCurrentPositionAsync();

以获取当前的GPS位置。
现在,result变量将保存此JSON对象:

Object {
  "coords": Object {
    "accuracy": 603,
    "altitude": 0,
    "altitudeAccuracy": 0,
    "heading": 0,
    "latitude": 37.421988,
    "longitude": -122.0840207,
    "speed": 0,
  },
  "mocked": false,
  "timestamp": 1677233557987,
}

我需要使用state函数将latitudelongitude值从result变量保存到状态变量location

setLocation({latitude, longitude});

所以当我跑的时候:

console.log(location);

它将显示以下内容:

Object {
  "latitude": 37.421988,
  "longitude": -122.0840207,
}

目前为止我唯一的成功是这样做的:

const latitude = result['coords'].latitude;
const longitude = result['coords'].longitude;

setLocation({latitude, longitude});

我的问题是-是否有更直接的方法来做到这一点?如:

setLocation({result['coords'].latitude, result['coords'].longitude});

因为这行不通。
谢谢。

new9mtju

new9mtju1#

您在尝试设置位置状态时错过了按键。以下操作应该有效:

setLocation({
  latitude: result['coords'].latitude,
  longitude: result['coords'].longitude,
});

或者,您可以使用解构从result.coords对象中提取纬度和经度值:

const { latitude, longitude } = result.coords;
setLocation({ latitude, longitude });

这是实现相同结果的更干净的方法。

相关问题