如何从 navigator.geolocation 正确调用 stopObserving()?

Sto*_*ace 5 javascript android geolocation ios react-native

我像这样观察用户的位置

_someFunc() {
    navigator.geolocation.watchPosition((position) => {
        ...
    )};
}
Run Code Online (Sandbox Code Playgroud)

_someFunc()_onPress(). 在另一个onPress()我想停止watchPosition. 这样做,我使用stopObserving类似(严重?)记录在这里。在另一个onPress()我只是打电话

_anotherSomeFunc() {
    navigator.geolocation.stopObserving();
}
Run Code Online (Sandbox Code Playgroud)

但是,这给了我警告

在没有现有订阅的情况下调用 stopObserving。

我不知道该怎么做。什么样的订阅?

小智 6

您应该保存 navigator.geolocation.watchPosition 返回的 watchId,然后调用 clearWatch:

watchId = navigator.geolocation.watchPosition((position) => {
        ...
    }
);
Run Code Online (Sandbox Code Playgroud)

...

navigator.geolocation.clearWatch(watchId);
navigator.geolocation.stopObserving();
Run Code Online (Sandbox Code Playgroud)