es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se pueden representar las filas de una tabla en componentes funcionales, los objetos no son válidos como un hijo de React.

Error no capturado: Los objetos no son válidos como hijos de React

Aquí está mi componente Row:

function IssueRow(props) {
const issue = props.issue;
return (
<tr>
<td>{issue.id}</td>
<td>{issue.status}</td>
<td>{issue.owner}</td>
<td>{issue.created}</td>
<td>{issue.effort}</td>
<td>{issue.due}</td>
<td>{issue.title}</td>
</tr>
)
};

Aquí está mi componente Table:

function IssueTable(props) {
const issueRows = props.issues.map(issue => (
<IssueRow key={issue.id} issue={issue} />
))
return (
<table className="bordered-table">
<thead>
<tr>
<td>ID</td>
<td>Estado</td>
<td>Propietario</td>
<td>Creado</td>
<td>Esfuerzo</td>
<td>Fecha límite</td>
<td>Título</td>
</tr>
</thead>
<tbody>
{issueRows}
</tbody>
</table>
)
};

Mi componente Table se está representando desde un componente TableList con estas propiedades:

this.state = {
issues: [
{ id: 1, status: 'Nuevo', owner: 'Ravan', effort: 5, created: new Date('2018-08-15'), due: undefined, title: 'Error en la consola al hacer clic en Agregar' },
{ id: 2, status: 'Asignado', owner: 'Eddie', effort: 14, created: new Date('2018-08-16'), due: new Date('2018-08-30'), title: 'Falta el borde inferior en el panel' }
]
}
.
.
.
render() {
return (
<React.Fragment>
<h1>Seguimiento de incidencias</h1>
<IssueFilter />
<hr />
<IssueTable issues={this.state.issues} />
<hr />
<IssueAdd createIssue={this.createIssue} />
</React.Fragment>
)
}

No puedo entender, por qué estoy recibiendo este mensaje de error. ¿Es posible que sea debido a algún error de compilación? No estoy utilizando npx create-react-app y configuré el entorno yo mismo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “Uncaught Error: Los objetos no son válidos como un hijo de React” ocurre cuando intentas renderizar un objeto como un componente hijo en React. En el código proporcionado, no hay ningún problema al renderizar un objeto directamente.

    Para solucionar este problema, debes verificar si alguno de los valores de propiedad del objeto “issue” en tus datos son objetos en sí mismos. Por ejemplo, si issue.created o issue.due son objetos, debes convertirlos en una cadena o componente React antes de renderizarlos.

    También puedes intentar utilizar la función console.log() para registrar los valores del objeto “issue” y verificar si son del tipo esperado.

    Otra posibilidad es que tengas errores de sintaxis o errores tipográficos en tu código que están causando errores de compilación. Puedes utilizar una herramienta como Babel para transpilar tu código y verificar si hay algún error presente.

    En general, debes revisar cuidadosamente tu código y datos para identificar la causa raíz del error y luego solucionarlo en consecuencia.

Comments are closed.