Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
Acceda a la variable fuera de una devolución de llamada ReactJS

Nuevo en RJS, tratando de acceder a mi variable "txt" fuera de la devolución de llamada de Data.map donde se declaró originalmente, ¿cómo podría hacer esto y tener acceso completo a la variable?

CódigoSandbox

 import Data from "./names.json"; export default function App() { //want to access txt in here <============== // console.log(txt) and stuff after accessing it here return ( <div className="App"> {Data.map((post) => { var txt = post.Name; return <h1>{post.Name}</h1>; })} </div> ); }

Gracias

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

De muchas formas, pero el gancho useState es bastante sólido, especialmente si quieres aprovechar la velocidad de React.

 import Data from "./names.json"; export default function App() { const [ txt, setTxt ] = useState(""); // sets it to an empty string to begin with useEffect(() => { console.log(txt); // every time the 'txt' variable changes, log it }, [ txt]); // << React calls this a dependency and will only run this function when this value changes. console.log(txt); // also accessible here return ( <div className="App"> {Data.map((post) => { setTxt(post.Name); // This updates the 'txt' variable from earlier ^^ return <h1>{post.Name}</h1>; })} </div> ); }

Si todo eso es demasiado largo, simplemente mantenga su variable txt fuera del componente de la función, y React no lo restablecerá en cada bucle. Aún podrá acceder a su valor en cualquier parte del archivo. Ejemplo:

 import Data from "./names.json"; let txt = ""; export default function App() { return ( <div className="App"> {Data.map((post) => { txt = post.Name; return <h1>{post.Name}</h1>; })} </div> ); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Afaik, no puede porque el texto está dentro del alcance de la función de mapa y no puede acceder a él fuera de él. Puede intentar ponerlo en un estado o hacer una función y convertirla en un argumento de esa función desde dentro de la función de mapa.

 import Data from "./names.json"; import {useState} from 'react' export default function App() { //want to access txt in here <============== // console.log(txt) and stuff after accessing it here const [text,setText] = useState() function getText(text) { console.log(text) // this function gets called in every instance of the map loop //you can run your logic here to find specific information and then set it to the state like in this example if (text === "myText") { setText(text) } } return ( <div className="App"> {Data.map((post) => { var txt = post.Name; getText(txt) // will run and recieve the var txt every instance return <h1>{post.Name}</h1>; })} </div> ); }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda