できますクラスをエラー境界にするReact で を実装しますcomponentDidCatch
。
関数コンポーネントをクラスに変換せずにエラー境界にするクリーンな方法はありますか?
それともこれはコードの臭いでしょうか?
ベストアンサー1
v16.2.0 時点では、機能コンポーネントをエラー境界に変換する方法はありません。
Reactのドキュメントではその点が明確に述べられているただし、何度でも自由に再利用できます。
このメソッドは、コンポーネントに対して
componentDidCatch()
JavaScript ブロックのように機能します。catch {}
エラー境界にできるのはクラス コンポーネントだけです。実際には、ほとんどの場合、エラー境界コンポーネントを 1 回宣言して、アプリケーション全体で使用する必要があります。
また、try/catch
ブロックはすべてのケースで機能するわけではない
階層の深いところにあるコンポーネントが更新を試み、失敗した場合、try/catch
親の 1 つにあるブロックは機能しません。これは、必ずしも子と一緒に更新されるとは限らないためです。