Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

198
Visualizações
Cambiar el parámetro del objeto por useState () en ReactJS

Así que estoy tratando de cambiar un parámetro de objeto que está siendo llamado por .map dentro de llaves. Aquí está el código:

 import React, { useEffect, useState } from 'react' function App() { const [news, setNews] = useState([]) const [searchQuery, setSearchQuery] = useState('city') const getNews = () => { fetch('https://api.randomuser.me/?nat=USA&results=5') .then(result => result.json()) .then(data => setNews(data.results)) .then(error => console.log(error)) } const handSearch = (e) => { setSearchQuery(e.target.value) } //the [] at the end is enabled to request data only onces useEffect(() => { getNews() }, [searchQuery]) return ( <div> <form> <input onChange={handSearch}></input> </form> <p><b>Available Input: </b>city, state, country, postcode</p> <hr/> { news.map((value, index) => ( <p key={index}>{`value.location.${searchQuery}`}</p> )) } <p>{searchQuery}</p> </div> ); } export default App;

Pero no funciona, solo devuelve una cadena. He intentado:

  1. Eliminar el apóstrofo ``
  2. Cambie las llaves a otros corchetes []
  3. Haga una const fuera de return() solo para value.location.${searchQuery} y vuelva a ponerla en las llaves
  4. Algunos otros pequeños cambios que olvidé

¿Cómo completar un parámetro de objeto por ${} ?

Cualquier ayuda sería apreciada, gracias antes!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

cambia esta línea de tu código

 <p key={index}>{`value.location.${searchQuery}`}</p>

a esto

 <p key={index}>{value.location[searchQuery]}</p>

va a funcionar

lee este artículo clave dinámica que te ayudará.

about 4 years ago · Juan Pablo Isaza Relatório

0

Debe usar corchetes para obtener el valor calculado de searchQuery value.location[searchQuery]

Por ejemplo:

 import React, { useEffect, useState } from 'react'; function App() { const [news, setNews] = useState([]) const [searchQuery, setSearchQuery] = useState('city') const getNews = () => { fetch('https://api.randomuser.me/?nat=USA&results=5') .then(result => result.json()) .then(data => setNews(data.results)) .then(error => console.log(error)) } const handSearch = (e) => { setSearchQuery(e.target.value) } //the [] at the end is enabled to request data only onces useEffect(() => { getNews() }, [searchQuery]) return ( <div> <form> <input onChange={handSearch}></input> </form> <p><b>Available Input: </b>city, state, country, postcode</p> <hr/> { news.map((value, index) => ( <p key={index}>{value.location[searchQuery]}</p> )) } <p>{searchQuery}</p> </div> ); } export default App;
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda