未处理的承诺拒绝:TypeError: undefined is not an object (evaluating 'userLocation.coords.latitude')

时间:2021-04-18 18:00:04

标签: javascript react-native async-await

我对 JavaScript 中的 Promise 有点困惑,因为文档说这些用于获取权限和用户位置的函数会返回一个 Promise,而我使用 then() do 来处理队列中的事情。到目前为止,我明白什么是承诺,但我不知道为什么这不起作用并告诉我这个。整个事情是我需要先获取用户坐标,然后通过坐标获取用户地址。这是我的代码:

const [userLocation, setUserLocation] = useState({});

  useEffect(() => {
    Location.requestPermissionsAsync().then((permission)=> {
      if(permission.granted) {
        Location.getCurrentPositionAsync({accuracy: 5}).then((result) => {
          setUserLocation(result)
        })
        .then(() => {
          Location.reverseGeocodeAsync({latitude: userLocation.coords.latitude, longitude: userLocation.coords.longitude}).then((arr) => {
            console.log(arr)
          })
        })
      }

    })
  }, [])

0 个答案:

没有答案