ReactJS/Preact 如何处理偶发的组件卸载错误?

How to handle sporadic component unmount error with ReactJS/Preact?

出于学习目的,我正在使用 Preact 构建 ReactJS SPA。每隔一段时间,我使用的库 (react-frame-component) 中的一个组件在卸载时会抛出异常,这会破坏应用程序的其他部分。这是一个相当偶发的错误,因此我无法创建一个重现它的测试用例。

我确实知道 error boundaries,并尝试将有问题的 <Frame> 组件封装在一个组件中,但并没有什么不同。具体来说,我得到的错误信息是

Uncaught (in promise) TypeError: Cannot read property 'body' of null
    at Frame.getMountTarget (Frame.js:112)
    at Frame.componentWillUnmount (Frame.js:95)
    at unmountComponent (preact.js:355)
    at unmountComponent (preact.js:358)
    at recollectNodeTree (preact.js:198)
    at removeChildren (preact.js:208)
    at recollectNodeTree (preact.js:201)
    at removeChildren (preact.js:208)
    at recollectNodeTree (preact.js:201)
    at removeChildren (preact.js:208)

我不确定如何自己捕获此错误,甚至无法正确调试它。任何帮助,将不胜感激。

通过制作 "custom" iframe 解决了:

let src = 'iframe src here';

<iframe id="my-awesome-frame"
        srcdoc={src} sandbox="allow-same-origin">
</iframe>