Javascript 无法在redux表单中显示提交错误
我试图在我的表单中显示提交错误,但我不明白为什么这不起作用。当我试图提交有错误的表单时,控制台中只会出现一个简单的错误,并且无法再次提交,尽管按钮已启用,并且表单中未显示任何错误 未兑现(承诺)Javascript 无法在redux表单中显示提交错误,javascript,reactjs,error-handling,redux,redux-form,Javascript,Reactjs,Error Handling,Redux,Redux Form,我试图在我的表单中显示提交错误,但我不明白为什么这不起作用。当我试图提交有错误的表单时,控制台中只会出现一个简单的错误,并且无法再次提交,尽管按钮已启用,并且表单中未显示任何错误 未兑现(承诺) const validate=values=>{ 常量错误={} const requiredFields=['电子邮件','密码'] requiredFields.forEach(字段=>{ 如果(!值[字段]){ 错误[field]=“Pole wymagane” } }) 如果(values.em
const validate=values=>{
常量错误={}
const requiredFields=['电子邮件','密码']
requiredFields.forEach(字段=>{
如果(!值[字段]){
错误[field]=“Pole wymagane”
}
})
如果(values.email&&!/^[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}$/i.test(values.email)){
errors.email='Podany adres jest nieprawidłowy'
}
返回错误
}
函数提交(值、分派){
返回新承诺((解决、拒绝)=>{
分派(actionCreators.loginUser(values.email,values.password))
.catch(错误=>{
拒绝(错误)
})
})
}
类LoginForm扩展组件{
建造师(道具){
超级(道具);
//this.onSubmit=this.onSubmit.bind(this);
}
render(){
const{error,handleSubmit,pristine,reset,submiting}=this.props
返回(
{error&&{error}}
重置
)
}
}
reactMixin(LoginForm.prototype,LinkedStateMixin);
常量mapStateToProps=(状态)=>{
返回{
用户:state.user.user,
isAuthenticated:state.user.isAuthenticated
}
}
//const mapDispatchToProps=(调度)=>{
//返回{
//操作:bindActionCreators(actionCreators,调度)
// }
// }
const form=reduxForm({
表单:“LoginForm”,
验证
提交:提交
})(LoginForm);
导出默认连接(MapStateTops)(表单);
一瞥,在submit()
函数中有一些未捕获的错误(如日志所示…)
这是因为Redux表单只捕获其他简单错误,而不捕获其他简单错误
因此,解决方案是自己处理错误(例如,在拒绝实现或catch块中调度submissionFailed操作)
例如:
function submit(values, dispatch) {
return new Promise((resolve) => {
dispatch(actionCreators.loginUser(values.email, values.password))
.catch( err => {
//reject(err)
dispatch(someNewErrorAnouncingAction(err))
})
})
}
正如它所看到的,在
submit()
函数中有一些未捕获的错误(如日志所示…)
这是因为Redux表单只捕获其他简单错误,而不捕获其他简单错误
因此,解决方案是自己处理错误(例如,在拒绝实现或catch块中调度submissionFailed操作)
例如:
function submit(values, dispatch) {
return new Promise((resolve) => {
dispatch(actionCreators.loginUser(values.email, values.password))
.catch( err => {
//reject(err)
dispatch(someNewErrorAnouncingAction(err))
})
})
}
你找到解决办法了吗?我也想看到解决办法。你找到解决办法了吗?我也想看到解决办法。