首页 > 解决方案 > 异常处理没有从 redux action catch 块中完成?

问题描述

我正在使用 redux 操作来执行 api 调用。为此,我使用了 try catch 块,catch 块应该检查异常并在通知中显示它们。

react 组件具有以下代码来调度操作:

          useEffect(() => {
            dispatch(getData());
          }, []);

动作如下:

          export const getData = () => async (dispatch) => {
            try {
              const res = await getListOfData();
              dispatch(actionDispatch(VIEW_DATA, res.data));
            } catch (ex) {
              console.log("ex", ex); //Getting error here
              dispatch(
                actionDispatch(SHOW_NOTIFICATION, {
                  message:
                    ex.response && ex.response.data
                      ? ex.response.data.message
                      : "Failed to perform action",
                  open: true,
                  type: "error",
                })
              );
            }
          };

后端的中间件检查令牌是否未过期,如果已过期,则将用户重定向到登录页面并发送 401 错误。现在的问题是我在网络选项卡中得到响应,但是在解决异常时,我收到以下错误:

在此处输入图像描述

但是在网络选项卡中,它显示正确的响应如下:

在此处输入图像描述

为什么我在控制台中收到无效的钩子错误?任何线索

标签: reactjsredux

解决方案


推荐阅读