React Geolocation with Hooks
Note: This is using the new React Hooks API Proposal which is subject to change until
React 16.7 finalthey are officially released.You'll need to install
react
,react-dom
, etc at@next
(until hooks are officially released).
npm install --save react-geoloc
import LocationProvider, { useLocationContext } from "react-geoloc";
export default class App extends Component {
render() {
return (
<div>
<LocationProvider lazy={true} watch={false}>
<Test />
</LocationProvider>
</div>
);
}
}
function Test() {
const {
error,
isFetching,
isWatching,
position,
fetchLocation,
watchLocation,
stopWatching
} = useLocationContext();
// useEffect(() => { fetchLocation()}, []); // note: use lazy={false} instead
const { latitude, longitude, altitude } = position && (position.coords || {});
return (
<div>
<pre>latitude: {latitude}</pre>
<hr />
<pre>longitude: {longitude}</pre>
<hr />
<pre>altitude: {altitude}</pre>
<hr />
<pre>isFetching: {JSON.stringify(isFetching)}</pre>
<hr />
<pre>isWatching: {JSON.stringify(isWatching)}</pre>
<hr />
<pre>{JSON.stringify(error)}</pre>
<hr />
<button onClick={fetchLocation}>Find me!</button>
<button onClick={watchLocation}>watch my location!</button>
<button onClick={stopWatching} disabled={!isWatching}>
Stop watching
</button>
</div>
);
}
lazy
: Boolean.true
to immediately retrieve the geolocation. default:true
watch
: Boolean.true
to immediately watch the geolocation. default:false
options
:PositionOptions
. The defaultPositionOptions
used when callingfetchCurrentLocation
orwatchLocation
Note: the options
prop is used when geolocation functions are called on mount (when lazy
is false or watch
is true) or when no parameters are provided when explicitly calling fetchLocation
or watchLocation
(see useLocationContext
below)
error
: null |PositionError
({code: number, message: string}
)isFetching
: boolean. Wether or not the position is currently being fetchedisWatching
: boolean. Wether or not the position is currently being watchedposition
: aPosition
objectfetchLocation
: a function that takes an optionalPositionOptions
. Warning: might not be present.watchLocation
: a function that takes an optionalPositionOptions
and watch the position (which meansposition
context value will be updated regularly)stopWatching
: a function that allows to stop watching the location.
MIT © saadtazi