在我的生产环境中未触发window.onerror / window.addEventListener

问题描述

我试图在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 (将#修改为@)