Question: Im using expo-location to monitor my users location as it updates

The `Location.watchPositionAsync(options, callback)` function in particular.

Its outputting the correct location but its not setting that output as the state using `setLocation`

`location` is returning the following :

```
Object {
  "remove": [Function remove],
}

```

`setLocation` and `location` are being stored in a context provider

My code is as follows :

**App.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()
    }, [])

```

Answer: 
I had the same problem not getting any location with `watchPositionAsync()`

It seems there is a bug (or it is intended this way, idk). **You must set accuracy to high to get location object**. It does not work with other accuracy options (as it also does not work with default).

```js
let location = await Location.watchPositionAsync(
  {accuracy:Location.Accuracy.High},
  (loc) => {console.log(loc)}
);
```

Hope this helps someone, I lost an hour on this :)
```
export default function App() {
  const [location, setLocation] = useState(null);
  const [status, requestPermission] = Location.useForegroundPermissions();

  useEffect(() => {
    (async () => {
      let { status } = await Location.requestForegroundPermissionsAsync();
      if (status !== 'granted') {
        setErrorMsg('Permission to access location was denied');
        return;
      }
      let location = await Location.getCurrentPositionAsync({});
      setLocation(location.coords);

      let backPerm = await Location.requestBackgroundPermissionsAsync();

      let locations = await Location.watchPositionAsync({
        accuracy: Location.Accuracy.High,
        distanceInterval: 2,
        timeInterval: 3000 
      }, 
      (loc) => { setLocation(loc.coords) });
    })(); }

```