Location.watchPositionAsync 未将状态设置为位置

Fad*_*hin 1 javascript geolocation react-native expo

我使用 expo-location 来监控我的用户位置更新

功能Location.watchPositionAsync(options, callback)特别多。

它输出正确的位置,但没有将该输出设置为使用的状态setLocation

location返回以下内容:

Object {
  "remove": [Function remove],
}
Run Code Online (Sandbox Code Playgroud)

setLocation并被location存储在上下文提供者中

我的代码如下:

应用程序.js

    useEffect(() => {
        console.log('hi')
        _getLocationAsync = async () => {
            let { status } = await Permissions.askAsync(Permissions.LOCATION)
            if (status !== 'granted') {
                console.log('debieeed')
            }
            let locations = await Location.watchPositionAsync({ accuracy: Location.Accuracy.Balanced, timeInterval: 10000, distanceInterval: 1 }, (loc) => setLocation(loc.coords));
            console.log(locations)
           
        }
        _getLocationAsync()
    }, [])
Run Code Online (Sandbox Code Playgroud)

小智 5

我遇到了同样的问题,无法获取任何位置watchPositionAsync()

似乎有一个错误(或者是这样的,idk)。您必须将精度设置为高才能获取位置对象。它不适用于其他精度选项(因为它也不适用于默认值)。

let location = await Location.watchPositionAsync(
  {accuracy:Location.Accuracy.High},
  (loc) => {console.log(loc)}
);
Run Code Online (Sandbox Code Playgroud)

希望这对某人有帮助,我为此浪费了一个小时:)