如何处理 flux 中的 server/request 错误?
How to handle server/request errors in flux?
我已经从一个组件调用了一个动作创建器到 create/edit 一个资源,它又向服务器发送了一个 API 请求。我应该如何处理服务器关闭或 returns 错误的情况?我希望所有相关组件都收到 success/failure.
的通知
我目前的想法是:
将 COMMENT_FAILED、COMMENT_SUCCESS 操作发送到评论存储,然后以某种方式通知组件?
在启动组件中使用 promises 来捕获操作调用中的错误并适当地 respond/render 它们。
哪个更好?为什么?
之前在 React+Flux: Notify View/Component that action has failed? 中已经提出过这个问题,但唯一提出的解决方案是像 2 中那样使用 Promises。我当然可以这样做,但它似乎...不像 Flux。
我通常做的是创建一个特定于我的 container/component 的错误减少器。例如,如果用户提交了登录,我会按如下方式将错误发送到我的登录缩减器。
export default function dispatchError() {
return function(dispatch) {
dispatch({
type: 'LOGIN_ERROR',
payload: 'You entered an incorrect password'
});
}
}
现在在您的实例中,这将非常相似。任何时候发送到您的减速器的请求失败。
我已经从一个组件调用了一个动作创建器到 create/edit 一个资源,它又向服务器发送了一个 API 请求。我应该如何处理服务器关闭或 returns 错误的情况?我希望所有相关组件都收到 success/failure.
的通知我目前的想法是:
将 COMMENT_FAILED、COMMENT_SUCCESS 操作发送到评论存储,然后以某种方式通知组件?
在启动组件中使用 promises 来捕获操作调用中的错误并适当地 respond/render 它们。
哪个更好?为什么?
之前在 React+Flux: Notify View/Component that action has failed? 中已经提出过这个问题,但唯一提出的解决方案是像 2 中那样使用 Promises。我当然可以这样做,但它似乎...不像 Flux。
我通常做的是创建一个特定于我的 container/component 的错误减少器。例如,如果用户提交了登录,我会按如下方式将错误发送到我的登录缩减器。
export default function dispatchError() {
return function(dispatch) {
dispatch({
type: 'LOGIN_ERROR',
payload: 'You entered an incorrect password'
});
}
}
现在在您的实例中,这将非常相似。任何时候发送到您的减速器的请求失败。