【问题标题】:How to get error message in Redux toolkit?如何在 Redux 工具包中获取错误消息?
【发布时间】:2022-01-21 08:22:22
【问题描述】:

如何在 reactjs 工具包中显示默认错误 action.message?

有一个减速器:

...
getQueryFail: state => {
state.loading = false
state.errors = true
}
...

动作调度:

...
catch(error){
dispatch (getQueryFail())
}
....

如何在操作失败时显示错误消息?

【问题讨论】:

    标签: reactjs redux redux-toolkit


    【解决方案1】:

    如果我理解您的问题,它将/应该像将 error 传递给 getQueryFail 动作创建者一样简单。假设 getQueryFail 是一个 createAction 操作,那么传递给它的任何参数都会在操作负载中传递。

    catch(error){
      dispatch (getQueryFail(error))
    }
    

    在 reducer 中访问 action.payload 以获取错误。

    getQueryFail: (state, action) => {
      state.loading = false;
      state.errors = true;
      state.error = action.payload;
    }
    

    不过,使用 error 键传递对象可能更清楚。

    catch(error){
      dispatch (getQueryFail({ error }))
    }
    

    ...

    getQueryFail: (state, action) => {
      state.loading = false;
      state.errors = true;
      state.error = action.payload.error;
    }
    

    【讨论】:

    • 目前在浏览器控制台中出现错误'在路径中的操作中检测到​​不可序列化的值:有效负载'
    • @VadymFilatov 如果我是正确的,这是您试图传递给您的状态的“错误”,那么我想您需要弄清楚“错误”是什么并访问您需要的部分它。它可能类似于error.message,也可能完全令人费解,具体取决于服务器/API 发回的内容。
    • 先生,error.message 仍然存在类似“JSON.parse:JSON.data 第 1 行第 1 列的意外字符”之类的问题
    • @VadymFilatov 您能否更新您的问题以包含此error 对象是什么?
    猜你喜欢
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2013-02-07
    • 1970-01-01
    • 2015-12-21
    • 2021-11-07
    相关资源
    最近更新 更多