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

时间:2018-02-12 20:43:14

标签: 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)

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

1 个答案:

答案 0 :(得分:0)

通过制作“自定义”iframe解决了问题:

 if($this->db->query("SELECT * FROM `$table` Limit 1")->result() == TRUE){
    #next process if table found    
    }else{
    #display error
    }