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

170
Views
Cómo renderizar componentes basados en el valor localStorage

¿Cómo renderizo en función de los datos en localStorage? LocalStorage tiene un par clave-valor (ubicación: EE. UU. o Ubicación: AU) y se agrega cuando el usuario lo visita.

 import React, { useEffect, useState} from 'react'; let localUserLoc = userLoc; //works fine when I set this variable to 'US' or 'AU' const LoadSections= (props) => { const { sections, className } = props; const [userLoc, setUserLoc] = useState(JSON.stringify(localStorage.getItem('userLoc')) || ''); useEffect(() => { const userLoc = JSON.stringify(localStorage.getItem('userLoc')); setUserLoc(userLoc); }, []); useEffect(() => { getUserLoc = userLoc; }, [userLoc]); // // console.log(local1, 'outside'); console.log(abTestType, '4 - outside'); return ( <Wrapper className={className}> {sections.map((section, sectionIndex) => { const userLocProp = section.userLoc; if (userLocProp === localUserLoc) { return <SomeComp /> } else if (userLocProp === 'undefined') { return <AnotherComp /> }

El código anterior solo carga si configuro manualmente localUserLoc en 'US' o 'AU'. Sin embargo, cuando trato de actualizar la variable desde localStorage, no se muestra.

Creo que es porque LocalStorage se lee pero no se representa. Intenté usar dos ganchos UseEffect y agregué el primero como una dependencia, pero fue en vano.

¿Cómo puedo leer y luego establecer la variable localUserLoc en lo que sea que esté en localStorage y representar el componente relevante?

  • La ubicación del usuario se detecta a través de IP y luego configuro el elemento en localStorage.
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No funciona porque está usando JSON.stringify después de obtener el valor de localStorage pero el valor almacenado en localStorage ya es una cadena porque localStorage solo puede almacenar valores de cadena.

Por lo tanto, debe usar JSON.parse para obtener el valor de localStorage y convertirlo en un javascript object .

 const [userLoc, setUserLoc] = useState(JSON.parse(localStorage.getItem('userLoc'))
about 4 years ago · Juan Pablo Isaza 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!