提交 c04bcce5 authored 作者: vipcxj's avatar vipcxj

改善路由错误的捕获,并增加原生错误的处理

上级 babd8810
......@@ -5,6 +5,7 @@ import _ from 'lodash';
import config from './utils/config';
import { isAuthed, hasDomain } from './utils/auth';
import { fullPath, makePromise0 } from './utils/helper';
import { processError } from './utils/error';
import App from './routes/app';
import { getMenus, getModuleInfo, getModuleLayout } from './data/modules';
import Monk from './routes/main/monk';
......@@ -159,7 +160,7 @@ function RouterConfig({ history, app }) {
},
];
return (
<Router history={history} routes={routes} />
<Router history={history} routes={routes} onError={processError} />
);
}
......
......@@ -13,7 +13,10 @@ const errStyle = {
};
export function processError(err) {
if (err && err.data) {
if (err) {
if (err instanceof Error) {
showError(err);
} else if (err.data) {
const data = err.data;
switch (data.errorCode) {
case errorCodes.no_such_user:
......@@ -26,10 +29,18 @@ export function processError(err) {
showError(err);
}
}
}
}
function showError(err) {
if (err) {
if (err instanceof Error) {
Modal.error({
title: `错误:${err.message}`,
content: <div style={errStyle}>{err.stack}</div>,
width: 460,
});
} else {
let msg;
if (err.data) {
const data = err.data;
......@@ -47,6 +58,7 @@ function showError(err) {
});
}
}
}
}
export function createError({ code, msg }) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论