formik fieldarray错误消息 - 反应本机

发布于 2025-01-27 20:22:19 字数 723 浏览 3 评论 0 原文

我正在使用formik fieldarray 作为我表单的一部分,并且想显示错误消息,我可以通过 errors.familymembers [0] ,看起来

[{"first_name": "First Name is a required field", "last_name": "Last Name is a required field"}]

要显示错误我有两个部分,我需要提取错误消息,

isInvalid={fieldName in errors.familyMembers[0] && touched[fieldName]}

<FormErrorMessage
  message={errors.familyMembers[0][fieldName]}
  isVisible={touched[fieldName]}
/>

问题是当组件最初渲染 errors.familymembers [0] is undefined > ,这给我带来了错误

undefined is not an object (evaluating 'errors.familyMembers[0]')

,有什么方法可以防止未定义的,并显示消息(如果可用)?希望这是有道理的

I'm using Formik FieldArray as part of my form and would like to show error messages, I can access the error messages within a component via errors.familyMembers[0], which looks like

[{"first_name": "First Name is a required field", "last_name": "Last Name is a required field"}]

To show the error I have 2 parts where I need to extract the error message

isInvalid={fieldName in errors.familyMembers[0] && touched[fieldName]}

<FormErrorMessage
  message={errors.familyMembers[0][fieldName]}
  isVisible={touched[fieldName]}
/>

The problem is when the component is initially rendered errors.familyMembers[0] is undefined, which gives me the error

undefined is not an object (evaluating 'errors.familyMembers[0]')

Is there a way I can guard against undefined and have the messages show if available? Hope that makes sense

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

草莓酥 2025-02-03 20:22:19

您可以使用,喜欢:

isInvalid={errors?.familyMembers && fieldName in errors.familyMembers[0] && touched[fieldName]}

<FormErrorMessage
  message={errors?.familyMembers?.[0][fieldName]}
  isVisible={touched[fieldName]}
/>

可选的链式操作员(?。)使您能够读取一个值
属性位于没有连接物体链中的深处
必须检查链中的每个参考是否有效。

You can use Optional chaining, like:

isInvalid={errors?.familyMembers && fieldName in errors.familyMembers[0] && touched[fieldName]}

<FormErrorMessage
  message={errors?.familyMembers?.[0][fieldName]}
  isVisible={touched[fieldName]}
/>

The optional chaining operator (?.) enables you to read the value of a
property located deep within a chain of connected objects without
having to check that each reference in the chain is valid.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文