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

127
Visualizações
map() no devuelve nada

En un botón onClick tengo una función que hace una petición GET y recibe una matriz json. Cuando trato de mostrárselo al usuario, nada cambia, aunque si coloco un archivo console.log dentro del mapa, sí muestro e itero todos los objetos.

 fetch('http://localhost:3000/GetApunte',{ method: 'GET', headers: { Accept: 'application/json', 'Content-Type': 'application/json' } }) .then(response=>response.json()) .then(responseJson => { this.datosCargados=true; this.anotaciones=responseJson; //cuerpo() return( <tbody> {this.anotaciones.map((anotacion, index)=>{ const {titulo, body} = anotacion return( <tr key={index}> <td>{titulo}</td> <td>{body}</td> </tr> ) })} </tbody> ); });

La estructura de mi clase es así:

 export default class Apuntes extends React.Component{ state ={} getApuntes(){} render(){ return( <button onClick={()=> this.getApuntes()}>Mostrar Apuntes</button> ) } }

Las anotaciones están dentro del estado, por eso uso this.anotaciones

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

0

No puede simplemente devolver datos de una promesa directamente al componente React, ya que no sería fácil controlar el estado del flujo de datos entre una función asíncrona y un componente síncrono. Intenta seguir esta práctica:

 const [arr, setArr] = useState([]) // array empty on init async fetch() { return fetchedArray; // get array from remote } useEffect(() => { fetchdArray().then(fetchedArr => setArr(fetchedArr); }, []); // this is equal to componentDidMount in class component return (<div>{arr.map(...)}</div>)

De esta manera, el arr siempre se actualiza su estado en la pantalla, desde vacío hasta poblado.

about 4 years ago · Juan Pablo Isaza Relatório

0

En lugar de devolver el JSX en la promesa, simplemente guarde las anotaciones en el estado. Puede extraer la generación de la tabla en una función separada, como

 const generarAnotaciones = () => <tbody> {this.anotaciones.map((anotacion, index) => { const { titulo, body } = anotacion return ( <tr key={index}> <td>{titulo}</td> <td>{body}</td> </tr> ) })} </tbody>

Entonces tu clase debería ser algo como esto:

 export default class Apuntes extends React.Component { state = {} getApuntes() { } render() { return ( <> <button onClick={() => this.getApuntes()}>Mostrar Apuntes</button> {generarAnotaciones()} </> ) } }
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