尽管调用了函数,但<errormessage>不起作用

时间:2019-05-01 21:17:14

标签: reactjs validation formik

我正在使用Formik构建简单的表单。

在我的validation方法中,我正在检查是否已在该字段中输入名称。如果还没有,那么我将打印到控制台中-运行正常。

validate={values => {
  let errors = [];

  if (!values.name) {
    console.log("no name entered");
    errors.name = "First name required";
  }

  //check if my values have errors
  return errors;
}}

但是,满足上述条件时,<ErrorMessage />组件什么也不做:

  <Field
    type="text"
    name="name"
    placeholder="First Name"
  />
  <ErrorMessage name="name" />

这是为什么?

Codesandbox

1 个答案:

答案 0 :(得分:3)

问题是您拥有let errors = [];而不是let errors = {};