6

说我有一个Yup.string()开始。

然后,在某个时候,就像在一个循环中,我想required有效地添加规则:

Yup.string().required('This field is required').

也许然后也添加一些.email检查。

我已经尝试过这种方式,但似乎没有用:

function validationSchemaConstructor(question) {
  const schema = Yup.string();

  question.validation_rules.forEach(rule => {
    if ("is_required" in rule) {
      schema.required("Hey man nice shot");
    }
  });

  return schema;
}
4

1 回答 1

1

啊,我的错误-我需要通过schema再次返回对象来分配一般作品中的再次 cuz 链接:

function validationSchemaConstructor(question) {
  let schema = Yup.string();

  question.validation_rules.forEach(rule => {
    if ("is_required" in rule) {
      schema = schema.required("Hey man nice shot");  // mistake here!
    }
  });

  // un-comment to test dynamically adding additional rule
  // schema = schema.email("email plesss");

  return schema;
}

虽然不确定我是否应该使用clone()某处。

如果有更好的方法请指教:)

于 2019-04-05T06:45:19.100 回答