我最近尝试了 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 ×1