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.

¿Los objetos no son válidos como un hijo de React (se encontró: un objeto con claves {})?

Estoy tratando de validar mi campo de formulario con Formik, pero me sale el error Los objetos no son válidos como un hijo de React (se encontró: objeto con claves {}), vi que ya se han realizado preguntas sobre el mismo error, pero en mi caso no fui capaz de solucionarlo. Primero quiero saber dónde está el error en mi código, en segundo lugar, estoy enfrentando principalmente este error, Los objetos no son válidos como un hijo de React (se encontró: objeto con claves {}), por lo que ¿qué significa realmente este error? Se agradecerá enormemente su ayuda, estoy intentando averiguarlo desde ayer, pero no puedo resolverlo.


import React from 'react'
import { Formik, Form, Field, ErrorMessage } from "formik"
import * as Yup from 'yup'
const FormikComponent = () => {
  const initialValues = {
    name: "",
    email: "",
    password: ""
  }
  const onSubmit = values => {
    console.log("Los valores después del envío", valores)
  }
  const validationSchema = Yup.object ({
    name: Yup.string().required("Requerido"),
    email: Yup.string().email("formato de correo electrónico no válido").required("requerido"),
    password: Yup.string().required("requerido")
  })
  return (
    <Formik initialValues = {initialValues} validationSchema = {validationSchema}
             onSubmit = {onSubmit}>
      <Form action = "">
        <div className = "form-control">
          <label htmlFor = "name">nombre</label>
          <Field type = "text" name = "name" id = "name" />
          <ErrorMessage name = "name" />
        </div>
        <div className = "form-control">
          <label htmlFor = "email">correo electrónico</label>
          <Field type = "email" name = "email" id = "email" />
          <ErrorMessage email = "email" />
        </div>
        <div className = "form-control">
          <label htmlFor = "password">Contraseña</label>
          <Field type = "Contraseña" name = "password" id = "password" />
          <ErrorMessage password = "password" />
        </div>
        <button type = "submit">Enviar</button>
      </Form>
    </Formik>
  )
}
export default FormikComponent;

**App.js**

import './App.css';
import FormikComponent from './Formik4';
function App() {
  return (
    <div className = "main">
      <h1>formulario React</h1>
      {<FormikComponent />}
    </div>
  );
}
export default App;
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error “Objects are not valid as a React child (found: object with keys {})” ocurre cuando intentas renderizar un objeto directamente en tu componente React en lugar de una cadena o JSX. En este caso, el error puede estar viniendo del componente ErrorMessage utilizado en el FormikComponent.

    Para solucionar el error, debes pasar una cadena de mensaje de error como un hijo del componente ErrorMessage para cada campo de formulario. Por ejemplo, en lugar de:

    <errormessage name="name"></errormessage>
    

    Debes usar:

    <errormessage name="name">{msg => <div>{msg}</div>}</errormessage>
    

    Esto asegurará que el mensaje de error se pasa correctamente como un hijo de cadena del componente ErrorMessage.

    Además, asegúrate de importar los módulos y paquetes correctos en tu código, y de que hayas instalado todas las dependencias necesarias. Verifica que los paquetes Formik y Yup estén correctamente instalados en tu proyecto.

Comments are closed.