【问题标题】:Objects are not valid as a React child (found: object with keys {})?对象作为 React 子对象无效(找到:带有键 {} 的对象)?
【发布时间】:2022-01-05 13:21:28
【问题描述】:
  **Reack_formik**

我正在尝试使用 Formik 验证我的表单字段,但我收到错误 Objects are not valid as a React child (found: object with keys {}),我看到了同样的错误问题已经被问过了,但就我而言,我无法弄清楚所以我决定在这里问。首先我想知道我的代码的错误在哪里,其次主要是我面临这个错误,对象作为 React 子级无效(找到:带有键 {} 的对象),所以这个错误的实际含义是什么。非常感谢您的帮助,我正试图从昨天开始解决,但我无法解决


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("Values after submission", values)
            }
            const validationSchema=Yup.object({
                name:Yup.string().required("Requried"),
                email:Yup.string().email("inavlid email formate").required("required"),
                password:Yup.string().required("required")
            })
        return (
            <Formik initialValues={initialValues} validationSchema={validationSchema} 
                           onSubmit= {onSubmit}>
                 <Form action="">
                     <div className="form-control">
                     <label htmlFor="name">name</label>
                     <Field type="text" name="name" id="name"  />
                     <ErrorMessage name="name"/> 
                     </div>
                     <div className="form-control">
                     <label htmlFor="email">email</label>
                     <Field type="email" name="email" id="email"   />
                     <ErrorMessage email="email"/>
                     </div>
                     <div className="form-control">
                     <label htmlFor="password">Password</label>
                     <Field type="Password" name="password" id="password" />
                     <ErrorMessage password="password"/>
                     </div>
                     <button type="submit">Submit</button>
                 </Form>
            </Formik>
        )
    }
    export default FormikComponent ;

      **App.js**


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

【问题讨论】:

  • 首先 只接受名称和渲染道具,而不是您在代码中提到的电子邮件或密码道具。尝试先修复它,看看它是否有效。
  • 是的,兄弟,它现在可以工作了,谢谢

标签: reactjs forms formik yup


【解决方案1】:

由于错误组件写入错误而出现错误

<ErrorMessage email="email"/>

应该写成

<ErrorMessage name="email"/>

【讨论】:

  • 是的,我现在才注意到,谢谢兄弟的帮助
猜你喜欢
  • 1970-01-01
  • 2020-12-28
  • 2020-05-25
  • 2021-06-28
  • 2021-05-19
  • 2018-01-12
  • 2021-05-19
  • 2020-02-27
  • 2021-09-13
相关资源
最近更新 更多