错误,当使用Formik和传递值时,对象作为React子对象无效。当使用Formik和传递值时,对象作为React子对象无效。

问题描述 投票:0回答:1

我正在使用Formik构建一个表单。在警告说渲染道具很快就会折旧之后,我试图摆脱它,并将它移到了 render={({values}) => {.....}}{({values}) => {.....}} 后者被放置为一个子节点而不是一个道具,但我得到了以下错误。

Error: Objects are not valid as a React child (found: object with keys {firstName, lastName, items}). If you meant to render a collection of children, use an array instead.

我的理解是,我是在破坏 props 途经 ({ values }) 所以我以为值将是我的 initialValues 对象,然后我就可以直接映射我的 patients 数组来创建所需的组件。

我想,React认为 values 是一个对象,所以他不高兴,因为他希望有一个儿童元素,但我应该通过什么呢?我试过 (...props) 但它也给我一个错误。

我感觉我在处理我的道具时犯了一个新手的错误,但我不能确定它。

任何想法?

我的Formik组件如下。

<Formik
  initialValues={{
    patients: [
      {
        id: "1",
        firstName: "",
        lastName: "",
        items: "",
      },
    ],
    phoneNumber: "",
    peopleOrdering: 1,
    monthOrder: "1",
    collectionOrDelivery: "",
    waitingOrLater: "",
    address: "",
    staffMember: "",
    claimReceipt: "",
    whereIsPrescription: "",
    keepSubscription: "",
    }}
    validationSchema={OrderSchema}
    onSubmit={() => {}}
>
  {({ values }) => (
    <Form>
      <FormItem name="patients">
        {values.patients.map((patient, i) => (
          <div key={patient}>
            <Input name={`patients[${i}].firstName`}></Input>
            <Input name={`patients[${i}].lastName`}></Input>
            <Input name={`patients[${i}].items`}></Input>
          </div>
        ))}
      </FormItem>
     // ... REST OF THE FORM
    </Form>
  )}
</Formik
javascript reactjs react-props formik destructuring
1个回答
0
投票

对我来说,你看起来像是在做:

<Formik {...props}>
  {fn}
</Formik>

而不是doing。

<Formik {...props}>
  {fn()}
</Formik>

0
投票

我改用了FieldArray组件,这样就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.