Formik-如果尚未更改,请停止验证该字段

时间:2019-10-09 22:41:31

标签: formik

Formik运行验证时,将验证我的所有字段。 我的一项操作确实非常昂贵(数据库查找)。 如果它没有更改,我不想运行此验证。我该如何实现?

我正在使用withFormik高阶组件。

我考虑的一个选项是跟踪当前值和最后一个经过验证的值。如果不同,则运行验证。可能是基础组件中的const [lastValidated, setLastValidated] = useState();。但是我不确定如何访问底层组件的状态。

const Guest = (props) => {
  // maybe lastValidated here?
};

const formikEnhancer = withFormik({
  validate: (values, props) =>
    new Promise((resolve, reject) => {
      const errors = {};

      // Runs validation on all fields

      }
 });

export default formikEnhancer(Guest);

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以考虑使用field-level validation。它可以为您提供更大的灵活性来检查此特定输入中的更改,因此您可以在运行昂贵的操作之前保释。