Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:使用Formik和传递值时,对象作为React子对象无效_Javascript_Reactjs_React Props_Formik_Destructuring - Fatal编程技术网

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

Javascript 错误:使用Formik和传递值时,对象作为React子对象无效,javascript,reactjs,react-props,formik,destructuring,Javascript,Reactjs,React Props,Formik,Destructuring,我正在用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 collectio

我正在用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.
我的理解是,当我传递
({values})
时,我正在分解
道具
,所以我假设值将是我的
初始值
对象,然后我可以映射我的
患者
数组以创建所需的任意多个组件

我想React将
视为一个对象,因此他不高兴,因为他希望有一个Children元素,但我应该传递什么呢?我尝试了
(…道具)
,但它也给了我一个错误

我感觉我在处理道具时犯了一个新手错误,但我无法准确指出:/

有什么想法吗

我的Formik组件如下所示:

{}
>
{({values})=>(
{values.patients.map((patient,i)=>(
))}
//…表格的其余部分
)}

在我看来,你正在做:

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

{fn}
而不是做:

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

{fn()}

对我来说,你似乎在做:

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

{fn}
而不是做:

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

{fn()}

我切换到使用FieldArray组件,这样做了

我切换到使用FieldArray组件,这样做了

谢谢。谢谢你的输入。你能详细说明一下吗?我看了Formik文档,看起来我正在按应该的方式使用它,但我的方法可能有问题记住,我想我错了。我看到你解决了你的问题,但是你试过只用
(值)
来代替
({values})
?谢谢。谢谢你的意见。你能详细说明一下吗?我看了Formik文档,看起来我用的是它应该用的方式,但我的方法可能有问题。没关系,我想我错了。我看到你解决了你的问题,但你试过只用
(值)
来代替
({values})