编辑:关注问题
我使用Redux-Form以多种形式使用任意提交行为。所有这些都使用props.error
来获取提交错误以向用户显示。
当用户编辑表单字段时,错误消息不再适用。因此,我希望在下次提交之前将其清除(或者至少不向用户显示)。
编辑字段会清除字段级错误属性(例如props.fields.email.error
)。我怎样才能清除表单级错误属性?
或者,您是否可以推荐一种可靠的方法来确定自提交以来已编辑过一个或多个字段?我可以用它来隐藏那个场景中的错误信息。
const MyForm = (props) => {
const { fields: {name},
error,
handleSubmit,
mySubmitHandler,
submitting,
...otherprops
} = props;
return (
<form onSubmit={ handleSubmit((values)=>{return mySubmitHandler(values, otherprops);}) }>
<div className="error-message">{error}</div>
<input {...name}>
</form>
);
};
function mapStateToProps(state) {
return {
user: state.authReducer.user
};
}
function mapDispatchToProps(dispatch)
{
return {
mySubmitHandler: (values, props) =>{
const { name } = values;
const { user } = props;
return dispatch(doAsyncAction(name, user))
.catch(err=>{
return Promise.reject({_error: err.message, name: err.message});
});
}
};
}
function clientValidate(values)
{
values = trimSpaces(values);
const { name } = values;
if (!name)
{
return {
name: 'You must enter a name',
_error: 'You must enter a name'
};
}
}
const fields = ['name'];
let MyFormContainer = reduxForm({
form: 'myFormName',
fields,
validate: clientValidate,
submitting: false
}, mapStateToProps, mapDispatchToProps)(MyForm);
export default MyFormContainer;
提前致谢! 附:关于redux-form v6,这与this unanswered question类似(可能相同?)。
原始问题:
这似乎是非常标准的行为,但到目前为止我还未能实现。如果有一种内置的方法(或类似的东西),我很乐意听到它。
第4项是通过field.active属性处理的。谢谢,@ Erik!
我想知道当用户重新回到字段时,或者至少在他们编辑字段时,如何清除错误。