私たちは、エラー伝播とエラーページ表示の仕組みをセットアップしようとしているreact-reduxプロジェクトを持っています。React-Reduxエラーページ管理
私たちがこれまで行ってきたことは、非同期APIコールや他の場所でエラーが発生した場合、アクションを実行してルートレベルコンポーネントAppを変更することです。ルートレベルレデューサーでは、エラーが伝搬された状態でエラーフィールドを設定します。エラーが発生した場合は、私たちが持っているコンテンツではなくエラーページをレンダリングします。
フローは次のようになります。コンポーネントA - >アクション - >アプリケーションリデューサ - >アプリケーションコンポーネント - レンダリングエラーページ。
しかし、問題はエラーコンポーネントに残っているということです。そして、エラーフィールドがエラーページをレンダリングする状態にとどまるので、ユーザーが新しいアクションをトリガーするたびに、またはエラーページが表示されるたびに、状態のエラーフィールドを{}にリセットするメカニズムが基本的に必要です。
この問題を解決する良い方法が見つかりませんでした。誰もが前に直面していたかもしれない非常に一般的なもののように見えます。一般的に、非同期エラーの伝播をどのように処理し、それに応じてエラーページを表示できますか?
はい、反応ルータを使用します。ルータを経由してエラーページを表示することができますが、それは実装されていますが、以前のエラーで状態が汚れています。コンポーネントから状態を(リデューサー関数をトリガーするアクションを介して)更新しようとすると、レンダリングメソッド内の状態を更新するための苦情があります。レンダリングメソッドの外でそれを行う方法はありますか? – ralzaul
確か:[componentWillReceiveProps()](https://facebook.github.io/react/docs/component-specs.html#updating-componentwillreceiveprops) –
を試してください。状態を再度更新すると、componentWillReceiveProps()の問題が発生します。アプリは再レンダリングされ、エラーページはもう表示されません。したがって、エラーページが表示され、状態が更新され、状態のエラーがもう存在しないため、エラーページが失われるようです。 – ralzaul