2016-05-16 1 views
2

React JSXビューでは、bundefinedの場合があるため、ビュー全体がクラッシュするという表現があります。{a.b.c}the same behaviour than expressions in AngularJSを提供するモジュールはありますか?私は、ビューをクラッシュさせる代わりに何も表示しない式を好む。例えば{((a||{}).b||{}).c}のようなものを書くべきでしょうか?Reactの "Forgiving"エクスプレッション

+2

*「提供モジュールはありますか?」*単なるJavaScriptです。この問題を解決する既存のソリューション/モジュールを使用できます。 * React *がこのような機能を提供するかどうか疑問に思うなら、いいえ。それはなぜでしょうか? –

+2

リアクションは純粋なjavascriptであり、その表現は純粋なjavascriptのものと同じではありませんが、同じではありません。だからあなたは '{a.b.c} 'をリアクションの許しの表現として使うことはできません –

+0

@FelixKling彼の質問は有効です。傲慢さの必要はありません。 Angularはこれらの状況をエレガントに処理します。未定義のスタックは生成されません。そのため、自分の世界ではJavaScriptだけではありません。彼がリアクトに慣れていないことを考えると、彼の質問は合理的ではありません。 – lux

答えて

3

Felix Klingはコメントでこれを答えました:反応式はただのJavaScriptです。未定義のTypeErrors、またはあなたを助けるライブラリを避けるために、任意のJavaScriptテクニックを使用できます。あなたが使用できるJavaScriptの

使用バニラ:dot-propを使用する

<Component prop={a && a.b && a.b.c} /> 
0

を深くネストされた構造では、それは便利かもしれません。

dotProp.get(a, 'b.c'); 
関連する問題