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

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

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