Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] 使用dynamicImport后,会导致有些情况无法捕获到组件的运行时错误 #7390

Closed
CodeChangingMe opened this issue Sep 27, 2021 · 0 comments

Comments

@CodeChangingMe
Copy link

CodeChangingMe commented Sep 27, 2021

现状

在使用umi的dynamicImport后,如果组件在挂载时有JS运行时异常,比如在render函数中,这些运行时异常最后会被react-loadable捕获。
导致unhandledrejection事件不能捕获到运行时错误,然而这个事件被很多监控系统用来做JS异常捕获。这就影响到了这些监控系统。

codesandbox例子:https://codesandbox.io/s/awesome-elbakyan-nbdvw?file=/src/pages/index.tsx:347-367

预期行为

希望在使用dynamicImport后,unhandledrejection事件能捕获组件挂载时的JS运行时错误。

原因

期望的解决方式

  • 在umi2中,建议把react-loadable依赖限制在5.3.1版本。
  • 在umi3中,建议在catch后throw error。

可能的疑问

运行时错误是不是在开发环境就能被发现?

在绝大多数情况下确实如此,但是在一些场景中,比如:
一个字符串replaceAll函数,这个函数兼容性很差,我们在本地开发环境中很难发现改函数不可调用的问题,我们就期望一些监控系统能帮助我们发现这个错误。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants