为什么使用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);
答案 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。
希望这有帮助!