问题描述
我试图在main.tsx文件中添加window.onError和window.addEventListener
try {
window.onerror = (message: string,source: string,lineno: number,colno: number,error: Error) => {
console.log("reached inside the window.onerror");
console.log(message);
};
} catch (e) {
console.log("reached the catch block");
const message = getErrorMessage(e);
logErrors(ClickEvent.GLOBAL_ERROR_LOG,message,ErrorEventLog.FATAL,pageId);
}
我以类似的方式尝试了window.addEventListener
window.addEventListener('error',event => {
console.log('insideventlistener');
console.log(event);
});
window.addEventListener('unhandledrejection',event => {
console.log('unhandledrejection');
return logClientSideError(event.reason);
});
注入的错误看起来像这样:
render() {
const sample = null;
return <div>{sample.abc}</div>;
}
问题:
在本地/开发环境中-触发window.onerror或window.addEventListener,并且console.log语句与错误一起显示在浏览器控制台中。
但是,当我将代码推送到生产环境时,它们永远不会被触发。 (但是该错误会显示在浏览器控制台中)我缺少任何内容吗?
我们的代码部分也添加了错误边界。
产品浏览器控制台中的错误
react_devtools_backend.js:2273 TypeError: Cannot read property 'as' of null
at t.render (main.js:8)
at un (main.js:37)
at sn (main.js:37)
at Bu (main.js:45)
at ta (main.js:37)
at $n (main.js:37)
at Wn (main.js:37)
at main.js:37
at t.unstable_runWithPriority (main.js:69)
at Wt (main.js:37)
at Qt (main.js:37)
at Kt (main.js:37)
at Fn (main.js:37)
at Object.enqueueSetState (main.js:45)
at o.a.setState (main.js:61)
at t (main.js:2)
at main.js:2
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)