2016-11-17 5 views
3

私はmapStateToProps内のエラーを処理する最も堅牢で信頼性の高い方法についてアドバイスを探していますが、これをReact + Reduxアプリケーション内のこのレベルで試行することさえ推奨されています。例えばmapStateToProps内でアプリケーションエラーを処理する堅牢な方法?

私はコンポーネントとmapStateToPropsreact-reduxconnectを使用した場合、:

function mapStateToProps(state, ownProps) { 
    throw Error('Some unfortunate error.'); 
    return { 
     // some data 
    } 
} 

私はこのエラーをキャッチし、多分レンダリングコンポーネントの代わりに、誤差成分を表示したいです。私は回復しようとはしません。 Uncaught TypeError: Cannot read property 'getHostNode' of null

+0

キャッチされない例外がある場合、スレッドはそのポイントを超えて継続しません。あなたが発見したように、Reactが他のコンポーネントを適切にレンダリングするのを妨げるので、Reactコンポーネントで捕捉されない例外を持つことは望ましくありません。 – ArneHugo

+0

@ArneHugoだから本質的にあなたは基本的に言っている "あなたはあなたのアプリでこの点に到達し、エラーがスローされた場合は、それがチェーンの上に発生しないようにする必要があります"?もしそうなら、それは完全に理解でき、満足できる答えIMHOです。 –

+1

そうですね。最初に起こらないようにするか、適切な場所にキャッチしてください(一般に、コンポーネントがレンダリングされないうちにキャッチしたい場合がありますが、最初のコンポーネントが失敗した場合は別のコンポーネントをレンダリングすることがあります)。 – ArneHugo

答えて

1

connectは、まだいくつかの小道具を渡すことを期待するので、私は通常のデータとして例外を処理します:私はこの屋台が完全に反応し、ページはおそらく再ロードする必要があることに気づいた瞬間

あなたのコンポーネントに。

function mapStateToProps(state, ownProps) { 
try { 
    // code 
    return { 
     // some data 
    } 
} catch (e){ 
    return { 
     error: e 
    } 
} 
} 

をそしてprops.errorのコンポーネントを見て、エラーメッセージを表示します。私はこのような何かをしたいです。

関連する問題