1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/rainbond-rainbond-ui

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
ErrorBoundary.js 1.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
barnettZQG Отправлено 5 лет назад ffc9017
import { connect } from 'dva';
import { Button, PureComponent, Result } from 'react';
@connect(({ user }) => ({
currentUser: user.currentUser,
}))
export default class ErrorBoundary extends PureComponent {
constructor(props) {
super(props);
this.state = { hasError: false };
}
static getDerivedStateFromError() {
// 更新 state 使下一次渲染能够显示降级后的 UI
return { hasError: true };
}
componentDidCatch(error, errorInfo) {
// 你同样可以将错误日志上报给服务器
console.log('err', error.toString());
console.log('errorInfo', errorInfo);
if (
process &&
process.env &&
process.env.NODE_ENV &&
process.env.NODE_ENV === 'development'
) {
return null;
}
return this.saveLog(error);
}
saveLog = error => {
const { dispatch, currentUser } = this.props;
dispatch({
type: 'global/saveLog',
payload: {
username: currentUser && currentUser.user_name,
enterprise_id: currentUser && currentUser.enterprise_id,
address: window.location.href,
msg: `错误:${error.toString()}`,
},
});
};
render() {
const { hasError } = this.state;
const { children } = this.props;
if (hasError) {
<Result
status="warning"
title="UI遇到障碍,我们已经记录信息,请重试"
extra={[
<Button type="primary" key="console" onClick={()=>{
window.location = window.location.href
}}>
刷新重试
</Button>
]}
/>
}
return children;
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/rainbond-rainbond-ui.git
git@gitlife.ru:oschina-mirror/rainbond-rainbond-ui.git
oschina-mirror
rainbond-rainbond-ui
rainbond-rainbond-ui
main