2017-07-05 7 views
0

リモートサーバーからのデータが画面に表示されると予想していますが、シミュレータでこのエラーが発生しましたCannot read property 'undefined' of undefinedコンテンツが前に結果の到着、この私はこのエラーを抱えているコードの一部:対処方法対処方法未定義のプロパティ 'undefined'を読み取ることができません

caption = { this.state.customFieldDropdown['gender'][this.state.dropDownSelectedItems['gender'] ] || '---Choose---' } 

だから、プロパティcaptionがテキストを期待しているし、未定義の値に対処するためには、私は、テキスト'---Choose---'を表示するには、この|| '---Choose---'を追加しましたnullの場合が問題ですが、this.state.dropDownSelectedItems['gender']は未定義です。this.state.customFieldDropdownがその値にアクセスすると、エラーが発生しました(読み取りプロパティこれは未定義です)

この問題をどのように処理するのですか?

答えて

1

プロパティチェーンで未定義の値が高くなっているようです。 ||演算子はチェーンの最後の値と一致するだけなので、たとえばthis.state.customFieldDropdown['gender']が未定義の場合は失敗します。

リアクションチームによって導入されたidx関数を見てみることをお勧めします。詳細はこちら:https://facebook.github.io/react-native/blog/2017/03/13/idx-the-existential-function.html

0

Idxは本当に良いです。次のようなことができます:

if (idx(this.state, _ => _.customFieldDropdown.gender[_.dropDownSelectedItems.gender])) 
    caption = this.state.customFieldDropdown.gender[this.state.dropDownSelectedItems.gender] 
else 
    caption = '---Choose---' 
関連する問題