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

250
Views
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 answers
Answer question

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 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!