Redux表单错误未定义

时间:2017-04-02 22:34:57

标签: reactjs redux-form

为什么使用validate函数未定义错误?我在日志中打印错误但在字段中未定义。当我尝试做field.meta.error时,我得到一个未定义的。我把它放在<input>之后的inputComponent const中。

const inputComponent = function(field) {
  return (
    <div>
      <input { ...field.input } type={field.type} placeholder={field.placeholder} className={field.className} />
    </div>
  );
}

class Test extends Component {

  render() {

    <div>
       <Field name="name" component={inputComponent} type="email" placeholder="Email" />
       <Field name="password" component={inputComponent} type="password" placeholder="Password" />
    </div>

  }


function validate(values) {
  const errors = {};

  if(!values.name) {
    errors.categories = "Name error";
  }

  if(!values.password) {
    errors.categories = "Password error";
  }

  return errors;
}

}

Test = reduxForm({
  form: 'NameForm',
  validate
}, null, null)(Test);

export default connect(mapStateToProps, mapDispatchToProps)(Test);

1 个答案:

答案 0 :(得分:5)

当您从errors返回validate个对象时,包含Field的错误消息的密钥必须与该字段的name道具相同。

所以在这种情况下:

function validate(values) {
  const errors = {};

  if(!values.name) {
    errors.name = "Name error";
  }

  if(!values.password) {
    errors.password = "Password error";
  }

  return errors;
}

有关详细信息,建议您从Redux-Form文档中查看this validation example

希望这有帮助!