Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

118
Views
Cuando bloqueo el sitio, todavía puedo ver la geolocalización del navegador usando Reactjs

Cuando permito que el navegador obtenga la geolocalización al hacer clic en el botón, puedo ver la latitud y la longitud. Pero cuando bloqueo el sitio para acceder a la ubicación, aparece "No se puede recuperar su ubicación" y también la latitud y la longitud ... Aquí, cuando bloqueo el sitio, solo debería recibir el mensaje "No se puede recuperar su ubicación" y Latitud y la longitud no deberían mostrarse... Encuentre también la captura de pantalla ingrese la descripción de la imagen aquí

Aquí está mi código

 const GeolocationButton = () => { const [lat, setLat] = useState(null); const [lng, setLng] = useState(null); const [status, setStatus] = useState(null); const getLocation = () => { if (!navigator.geolocation) { setStatus('Geolocation is not supported by your browser'); } else { setStatus('Please allow brower to access your Location'); navigator.geolocation.getCurrentPosition((position) => { setStatus(null); setLat(position.coords.latitude); setLng(position.coords.longitude); }, () => { setStatus('Unable to retrieve your location'); }); } } return ( <div className="App"> <button onClick={getLocation}>Get Location</button> <h1>Coordinates</h1> <p>{status}</p> {lat && <p>Latitude: {lat}</p>} {lng && <p>Longitude: {lng}</p>} </div> ); } export default GeolocationButton
about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

lat y lng son variables de estado, y el estado es, bueno, persistente. En consecuencia, cuando estableces lat y lng , conservan esos valores, incluso si luego bloqueas el acceso a los datos de ubicación.

Hay varias formas de resolver:

  1. Dado que status , lat y lng son todos interdependientes, utilice una sola variable de estado para almacenar los tres. Este enfoque es el que mejor se da cuenta de la relación dependiente entre las variables.

     const GeolocationButton = () => { // could also initialize location to `{}` const [location, setLocation] = useState({status:null,lat:null,lng:null}); const getLocation = () => { if (! navigator.geolocation) { // don't spread previous state into new state, and // no need to explicitly set location.lat & .lng setLocation({ status: 'Geolocation is not supported by your browser', }); } else { …
  2. Al configurar el status , configure también lng y lat . Esto no implementa explícitamente la interdependencia entre variables, por lo que requiere más disciplina por parte del programador.

     if (! navigator.geolocation) { setStatus('Geolocation is not supported by your browser'); setLat(null); setLng(null); } else { // note: there's a typo in "browser" in the question sample setStatus('Please allow browser to access your Location'); setLat(null); setLng(null); …
  3. Al obtener la ubicación, inicialice lat y lng en null :

     const getLocation = () => { setLat(null); setLng(null);
  4. Al mostrar lat y lng , verifique que el status no esté establecido (también debe verificar status antes de mostrarlo):

     {status && <p>{status}</p>} {!status && lat && <p>Latitude: {lat}</p>}
about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!