如何在功能性 React 组件中使用错误边界?

新手上路,请多包涵

我可以通过实现 componentDidCatch 使一个类成为 React 中的错误边界

是否有一种干净的方法可以将功能组件变成错误边界而不将其转换为类?

或者这是代码的味道?

原文由 Dancrumb 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 540
1 个回答

从 v16.2.0 开始,无法将功能组件变成错误边界。

React 文档对此很清楚,尽管您可以随意重复使用它们:

componentDidCatch() 方法像 JavaScript catch {} 块一样工作,但对于组件。 只有类组件可以是错误边界。在实践中,大多数时候您会希望声明一次错误边界组件并在整个应用程序中使用它。

还要记住 try/catch 块 _不会在所有情况下都有效_。

如果层次结构深处的组件尝试更新并失败,则父项之一中的 try/catch 块将不起作用 - 因为它不一定与子项一起更新。

原文由 gustavohenke 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进