【问题标题】:How can i force validation on the initial values in a formik form, when it mounts安装时如何强制验证 formik 表单中的初始值
【发布时间】:2023-02-10 06:27:22
【问题描述】:

我在 React 16+ 中,使用 withFormik 作为表单。

它是一个单一的字段形式,在初次使用时将有一个空字符串值。我希望验证初始值,以便用户知道他们必须填写一个值。

所以空白字符串""初始值,我希望错误说“请输入一个值”而无需用户触摸或任何东西。负载。

formik 文档声称它可以通过内置工具执行此操作,但库/文档没有加起来。

验证装载: https://formik.org/docs/api/withFormik#validateonmount-boolean

在我的表单中设置为 true 时,此值不执行任何操作。有很多其他人遇到同样问题的记录问题。似乎 formik 贬值了一个曾经做得很好的旧财产。如果不构建某种类型的 hack,我找不到任何东西可以做到这一点。

我怎样才能让 formik 在 from 挂载后立即运行验证器。

如果您的答案是禁用“enableReinitialize”属性,我已经尝试将此与validateOnMount: true 结合使用,但仍然一无所获。

【问题讨论】:

    标签: formik


    【解决方案1】:

    Formik 似乎格外注意事物是否被“触及”;如果我同时添加 validateOnMount,我就能让它工作initialTouched属性。

    这没有用:

    <Formik
      initialValues={initialValues}
      validateOnMount={true}
    >
      ...
    </Formik>
    

    但这确实:

    <Formik
      initialValues={initialValues}
      validateOnMount={true}
      initialTouched={true}
    >
      ...
    </Formik>
    

    【讨论】:

      猜你喜欢
      • 2020-11-29
      • 2023-01-13
      • 2011-06-12
      • 2021-09-09
      • 2020-11-09
      • 2020-04-14
      • 2011-01-26
      • 2021-12-24
      • 1970-01-01
      相关资源
      最近更新 更多