admin-on-rest中如何在showNotification显示捕获的错误信息?
在Admin-on-Rest中使用showNotification显示错误对象信息
嘿,我来帮你搞定这个问题!你遇到的核心问题很明确:admin-on-rest的showNotification方法第一个参数需要接收字符串类型的内容,而你直接传入了错误对象e,它没办法自动把对象转换成用户能看懂的文本,所以通知才没法正常工作。
下面给你几种实用的解决方案,你可以根据自己的错误对象结构来选择:
1. 显示标准错误消息(最常用)
JavaScript原生的Error对象都自带message属性,直接提取这个属性就能展示基础的错误提示:
.catch(e => { console.error('catch', e); showNotification(`发生错误:${e.message}`, 'warning'); });
2. 适配Admin-on-Rest的API错误
如果你的错误来自后端API响应(比如admin-on-rest封装的请求错误),错误信息可能会放在payload或response属性里,这时候可以做个兼容处理:
.catch(e => { console.error('catch', e); // 优先取API返回的自定义错误消息,没有则用原生message,最后兜底 const errorText = e.payload?.message || e.message || '未知错误'; showNotification(`请求失败:${errorText}`, 'warning'); });
3. 显示详细错误信息(调试用)
要是你需要更细节的错误内容(比如调试阶段),可以提取堆栈信息,但记得截断避免通知过长:
.catch(e => { console.error('catch', e); // 拼接消息和部分堆栈信息,截断防止内容溢出 const detailMsg = `${e.message}\n${e.stack?.slice(0, 150)}...`; showNotification(detailMsg, 'warning'); });
小提醒
调试的时候一定要先通过console.error(e)查看错误对象的具体结构,因为不同场景下的错误对象属性可能不一样(比如是前端抛出的原生Error,还是axios返回的请求错误),根据实际结构提取对应的文本就好啦!
内容的提问来源于stack exchange,提问作者JimmyWj4EHiM
相关产品推荐
相关产品推荐

