React では、コンポーネント ツリーのどの時点でもエラーが発生し、UI が中断され、ユーザー エクスペリエンスに影響を与える可能性があります。エラーによるアプリ全体のクラッシュを防ぐために、React は Error Boundaries と呼ばれる機能を提供します。エラー境界を使用すると、コンポーネント ツリー内の任意の場所で JavaScript エラーを検出し、アプリケーション全体をクラッシュさせることなく適切に処理できます。
エラー境界 は、レンダリング中、ライフサイクル メソッド内、および子コンポーネントのコンストラクター内で JavaScript エラーをキャッチする React コンポーネントです。エラーが検出されると、アプリケーション全体のクラッシュを防ぎながら、エラー境界でフォールバック UI を表示したり、エラーをログに記録したり、その他のアクションを実行したりできます。
エラー境界は、アプリの特定の部分でエラーを処理するために使用でき、アプリケーションの残りの部分を中断することなくエラー メッセージやフォールバック UI を表示できます。
エラー境界は、2 つの特定のライフサイクル メソッドを実装するクラス コンポーネントを作成することで実装されます。
import React, { Component } from 'react'; class ErrorBoundary extends Component { constructor(props) { super(props); this.state = { hasError: false, errorInfo: null }; } static getDerivedStateFromError(error) { // Update state to display fallback UI return { hasError: true }; } componentDidCatch(error, errorInfo) { // Log the error details to an external service console.error("Error caught by Error Boundary:", error, errorInfo); } render() { if (this.state.hasError) { // Render a fallback UI if there's an error return <h1>Something went wrong. Please try again later.</h1>; } return this.props.children; // Render the children if no error occurred } } export default ErrorBoundary;
エラー境界コンポーネントを作成したら、それを使用して、エラーをスローする可能性のある他のコンポーネントをラップできます。アプリの個々のコンポーネントまたはセクション全体をラップして、エラー処理を適切に行うことができます。
import React from 'react'; import ErrorBoundary from './ErrorBoundary'; const ChildComponent = () => { // Simulate an error throw new Error('This is a simulated error!'); return <div>Child Component</div>; }; const App = () => { return ( <ErrorBoundary> <ChildComponent /> </ErrorBoundary> ); }; export default App;
この例では:
エラー境界は多くのシナリオで役立ちますが、いくつかの制限があります。
import React, { Component } from 'react'; class ErrorBoundary extends Component { constructor(props) { super(props); this.state = { hasError: false, errorInfo: null }; } static getDerivedStateFromError(error) { // Update state to display fallback UI return { hasError: true }; } componentDidCatch(error, errorInfo) { // Log the error details to an external service console.error("Error caught by Error Boundary:", error, errorInfo); } render() { if (this.state.hasError) { // Render a fallback UI if there's an error return <h1>Something went wrong. Please try again later.</h1>; } return this.props.children; // Render the children if no error occurred } } export default ErrorBoundary;
エラー境界は、エラーを適切に処理し、予期しない問題が発生した場合でもアプリケーションが機能し続けることを保証する React の強力なツールです。アプリの失敗する可能性のある部分の周囲にエラー境界を使用することで、エラーを捕捉し、後で分析するためにログに記録し、ユーザーにフォールバック UI を表示できます。ただし、エラー境界ではイベント ハンドラーや非同期コードのエラーは検出されないため、これらのケースは必ず個別に処理するようにしてください。
エラー境界を効果的に使用することで、React アプリケーションの信頼性とユーザー エクスペリエンスを向上させることができます。
以上がReact のエラー境界: アプリ内でエラーを適切に処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。