React/redux - Onclick对减速器的反应
问题描述:
我有一个react/redux应用程序,我有以下挑战。当我点击一个按钮时,我想保存表单数据,并且如果在后端发生验证错误,我想显示消息并重新定向。React/redux - Onclick对减速器的反应
在我的组件我有这个功能
doSubmit = (data) => {
const {actions, linkUtils, myObject} = this.props
return actions.checkAuthentication()
.then(actions.sendMyObject(myObject, data))
.then(linkUtils.openRoute('nextUrl'))
}
现在的操作使用调度调用减速机,我可以确认减速器被调用。我使用的动作类型和我的动作类型使用开关的情况下:在doSubmit
case types.SAVE_SUCCESS:
return {
...state,
save: true,
}
case types.SAVE_ERROR:
return {
..state,
saved: false,
fieldErrors: action.payload.errors
}
现在我想是这样的:
return actions.checkAuthentication()
.then(actions.sendMyObject(myObject, data))
.then(if (saved) { linkUtils.openRoute('nextUrl') })
所以,只有保存对象时是成功的重定向完成。
我该怎么做?
答
你可以只打开数据sendMyObject
回报:
return actions.checkAuthentication()
.then(actions.sendMyObject(myObject, data))
.then((saved) => {
if (saved) {
return linkUtils.openRoute('nextUrl');
} else {
// something else
}
});
对于这个工作,你的承诺sendMyObject
需要解决saved
或其他一些信息,告诉下一个诺言链中的它是否是成功的。