I am working using react.js and the module useposition but I would like to know how can I do to disable the popup of geolocalization if I go directlry to this path : http://localhost:3000/activation
import {usePosition} from "use-position";
import { BrowserRouter as Router, Route } from "react-router-dom";
import Activation from "./components/activation/activation";
import {Popup} from "react-leaflet";
const App = () => {
const { latitude, longitude, timestamp, accuracy, error } = usePosition();
return (
<>
<p>We are there</p>
<Router>
<Route path="/activate/:token" component={Activation} />
</Router>
</>
);
};
export default App;
I mean if I go to this route : http://localhost:3000/activation => I don’t have the popup of geolocalization
if I go to this route : http://localhost:3000 => I have the popup of gelolocalization
Could you help me please ?
Thank you very much !
Advertisement
Answer
Use the usePosition only if not in the specified path and use <Switch> to only use one of the declared routes:
import {usePosition} from "use-position";
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import Activation from "./components/activation/activation";
import {Popup} from "react-leaflet";
const WithPosition () => {
const { latitude, longitude, timestamp, accuracy, error } = usePosition();
return (
<div>Whatever rest of contents</div>
)
}
const App = () => {
return (
<>
<p>We are there</p>
<Router>
<Switch>
<Route path="/activate/:token" component={Activation} />
<Route component={WithPosition} />
</Switch>
</Router>
</>
);
};
export default App;