【问题标题】:redux error handling for fetchsredux 对 fetch 的错误处理
【发布时间】:2017-07-20 14:38:43
【问题描述】:

我正在使用 redux 中的 fetch 进行错误处理。人们是否通常为每个请求编写 reducers/actions 错误处理程序,例如来自 redux.js.org 的视频?我正在考虑发送带有错误标志的相同操作来处理错误,但我不知道这是否是正确的方法。

【问题讨论】:

    标签: javascript redux


    【解决方案1】:

    根据我的经验,是的。我通常有GET_THINGSGET_THINGS_SUCCESSGET_THINGS_ERROR 之类的操作,然后在reducer 中有一个case 语句来处理每个操作。我认识的大多数 React 开发人员都做得很好。一般来说,我建议遵循这种模式。也就是说,它确实导致您必须以基本相同的方式处理大量 GET 操作和 ERROR 操作,因为您可能只是向状态添加类似 { Loading: true }{ Error: true } 的内容。 .

    【讨论】:

      【解决方案2】:

      对于错误处理和发布/放置数据,我使用一种通用的方式来引发一个对话框,让用户指示成功或失败。

      例如有一个通知动作 const NotificationAction = (open = false, message = '', status = 'success') => ({type: NOTIFICATION, payload: {open, message, status}})

      还有一些对话框组件,它会引发一个对话框或snackBar来显示一条消息

      当你的请求失败时发送这个

      myRequest()
              .then((response) => {
      
                  if (response.status === 200) {
      
                      dispatch(projectsSuccess(response.data))
      
                  }
      
              })
              .catch((error) => {
      
                  dispatch(NotificationAction(true, `My Error Text : ${error}`, 'error'))
      
              })
      

      这样你可以减少你在 reducer 中的样板代码

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-21
        • 2016-09-01
        • 1970-01-01
        • 2016-03-27
        • 2017-01-16
        • 2017-05-16
        • 1970-01-01
        • 2019-06-14
        相关资源
        最近更新 更多