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

267
Visualizações
Reaccionar: pasar valor a un componente funcional da como resultado un valor indefinido

Estoy tratando de pasar valores uno por uno a un componente funcional desde la función array.map. Lamentablemente, el componente no muestra el valor.

ingrese la descripción de la imagen aquí

Esto es lo que estoy recibiendo. Hay nombres de habitaciones almacenados en la base de datos que deben imprimirse aquí.

Pantalla de inicio.js

 import React, { useState, useEffect } from "react"; import axios from "axios"; import Room from "../components/Room"; export default function Homescreen() { const [rooms, setRooms] = useState([]); const [loading, setLoading] = useState(); const [error, setError] = useState(); useEffect(async () => { try { setLoading(true); const data = (await axios.get("/api/rooms/getallrooms")).data; setRooms(data); setLoading(false); setError(false); } catch (error) { setLoading(false); setError(true); console.log(error); } }, []); return ( <div> {loading ? ( <h1>Loading...</h1> ) : error ? ( <h1>Error fetching details from API</h1> ) : ( rooms.map((room) => { return (<div> <Room key={room._id} room={room}></Room> </div> ) }) )} </div> ); }

Room.js (Componente funcional que debe imprimir los nombres de las habitaciones):

 import React from "react"; function Room(room){ console.log(room.name) return( <div> <h1>Room name: {room.name}.</h1> </div> ) } export default Room;

Los datos se obtienen correctamente de db porque si, en lugar de pasar el valor al componente, imprimo directamente en mi pantalla principal, los valores se imprimen.

En otras palabras, en Homescreen.js, hacer <p>{room.name}</p> en lugar de <Room key={room._id} room={room}></Room> imprime los nombres de las habitaciones correctamente.

Entonces, creo que el problema surge cuando paso los valores como accesorios.

Cualquier ayuda es muy apreciada. Gracias.

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

0

El parámetro pasado a un componente de función es el objeto props que contiene los accesorios pasados, por lo que solo necesita tomar props.room desde allí:

 function Room(props){ console.log(props.room.name) return( <div> <h1>Room name: {props.room.name}.</h1> </div> ) }

O, con desestructuración de objetos :

 function Room({ room }){ console.log(room.name) return( <div> <h1>Room name: {room.name}.</h1> </div> ) }
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