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

39
Vistas
la propiedad del objeto de matriz anidada devuelve un error de tipo indefinido en reaccionar redux

Quiero mostrar los detalles de la publicación en la interfaz. mi api muestra el detalle posterior como se muestra a continuación capturado en cartero:

 "message": "Posts fetched successfully!", "posts": { "_id": "61f05f676793d49f466e7aaa", "title": "Liberal Arts Student Sample", "content": "The three-page.", "creator": { "_id": "61cd99efa0b8d616a7a53ce1", "createdAt": "2021-12-30T11:37:19.041Z", "updatedAt": "2022-01-06T14:35:48.801Z", "__v": 0, "bio": "user bio", "name": "username" }, "Comments": [], "created": "2022-01-25T20:36:55.095Z", "createdAt": "2022-01-25T20:36:55.096Z", "updatedAt": "2022-01-25T20:36:55.096Z", "__v": 0 } }

Quiero exhibir los detalles de esta publicación en la interfaz y aquí está el código:

 export default function PostDetail() { const { postId } = useParams(); const post = useSelector((state) => state.post) const dispatch = useDispatch(); const { title, content,creator, created } = post; const fetchPostDetail = async (id) => { const response = await axios.get(`http://localhost:5000/api/articles/post/${id}`, { post }) .catch(err => { console.log(err); }) dispatch(selectedPost(response.data.posts)); } useEffect(() => { fetchPostDetail(postId) }, []) return ( <div> <h1>Post Detail</h1> <div> <h2>{title}</h2> <i>posted in {created}</i> <li>Created by {creator.map((m,i)=>( <b key={i}>{m.name}</b> ))}</li> <p>{content}</p> </div> </div> ); }

Hay tres errores:

  1. TypeError no capturado: el creador no está definido
  2. El error anterior ocurrió en el componente:
  3. TypeError no capturado: el creador no está definido

si silencio el

  • Creado por {creator.map((m,i)=>( {m.name} ))}
  • luego muestra los detalles de la publicación sin el nombre del autor de la publicación. pero quiero mostrar el nombre del autor.

    como puedo solucionar eso gracias de antemano

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

    0

    Por primera vez, cuando se monte el componente, el valor del creador no estará definido. Debe agregar una verificación antes de obtener el valor anidado.

     <div> <h1>Post Detail </h1> <div> <h2>{title} </h2> <i> posted in {created} </i> {creator && <li> Created by :{creator.name}</li>} <p> {content} </p> </div> </div>

    Nota: Una cosa más, Creator no es una matriz. es un Objeto. Entonces no puedes mapear el objeto. En caso de que sea una matriz, también debe realizar la verificación anterior en ese caso.

    about 4 years ago · Juan Pablo Isaza Denunciar

    0

    asegúrese de que el objeto de la publicación contenga la clave "creador", y no necesita map() si el estado se ve exactamente como la respuesta de la API. Si pudiera mostrar cómo se ve el estado, eso revelará más del problema.

    about 4 years ago · Juan Pablo Isaza Denunciar

    0

    Aquí, el creador es un Objeto. Mientras que la función .map es para Array. Para mapear un objeto, puede verificar: función de mapeo para objetos (en lugar de matrices)

    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