小编Ati*_*ngh的帖子

放置 React Error Boundary 组件的理想位置?

我最近尝试了 React 的错误边界。根据反应文档 -

错误边界的粒度由您决定。您可以包装顶级路由组件以向用户显示“出现问题”消息,就像服务器端框架经常处理崩溃一样。您还可以将单个小部件包装在错误边界中,以防止它们使应用程序的其余部分崩溃。

包装顶级路由很好并且解决了我的目的,但是一个组件的中断会使其他正常工作的组件无用,并用错误边界的回退 UI 替换所有这些组件。

例如,我有一个顶级 Route 组件 -<Component1 /> 它呈现了其他四个子组件 -<Component2 /> <Component3 /> <Component4 /> <Component5 />

现在我的子组件有条件渲染,如果我想单独使用错误边界,我需要用错误边界包装我的所有条件渲染。我不想这样做。

我还有另一个问题:错误边界是否会捕获生命周期钩子(子组件的)中引起的错误,例如ComponentDidMount

例如——

cont Component1 = () => {
  return (
     <ErrorBoundary> 
         <Component2 />
         <Component3 />
         <Component4 />
         <Component5 />
     </ErrorBoundary>
 )
}
Run Code Online (Sandbox Code Playgroud)

这是否会ErrorBoundary捕获生命周期钩子中的错误,例如 componentDidMount of Component2

reactjs

6
推荐指数
1
解决办法
1294
查看次数

标签 统计

reactjs ×1