说明:适用于Vue、React、Angular。
TINGYUN.setError(err);
err:错误对象,需要包含两项属性: {message, stack}。
示例(Vue):
一般在src/main.js中配置:
Vue.config.errorHandler = function(err) {
window['TINGYUN'].setError(err);
};
示例(React):
一般在src/index.js中配置:
class ErrorBoundary extends React.Component {
constructor(props) {
super(props);
this.state = { hasError: false };
}
componentDidCatch(error) {
this.setState({ hasError: true });
window['TINGYUN'].setError(error);
}
render() {
if (this.state.hasError) {
return null;
}
return this.props.children;
}
}
ReactDOM.render(<ErrorBoundary> <App /> </ErrorBoundary>, document.getElementById('root'));
示例(Angular):
一般在app.module.ts中配置:
import { ErrorHandler } from '@angular/core';
export class GlobalErrorHandler implements ErrorHandler {
handleError(err:any) : void {
window['TINGYUN'].setError(err);
}
}
@NgModule({
...,
providers: [ { provide: ErrorHandler, useClass: GlobalErrorHandler } ],
...
})