未定義のプロパティ「XX」を読み込めません:がちな例外TypeErrorが、なぜ最初のレンダリングを反応させます

  この質問と私たちは否定かもしれは、ちょっと、あなたは実際には、我々は真剣にそれの理由については考えていない、まあ嫌いではないだろう、間違った顔を与えました。まずコンパイルするおかげで、残りのマップ・エラーに。図古い鉄に興味を持っていないが、結論を見るために下に直接引くことができます

エラー:

 

 コード:

  第二に、私は、(あなたが結論を見て、絵をスキップすることができます)散歩に引き出すために、コードを簡素化

 

 

 奇妙な場所:

  行は、始まるショットにエラーをスローこの行をコメントアウトし、残りは正常に実行されることを著者に

理由:

  まず、我々はthis.state.detailに注意し、デフォルト値が与えられた空の文字列を。

  なぜ私が故意に空の文字列を説明すればいい

  次のコードはあなたの注意を持っています

 

上記の画像は本質です。

   ページが未定義の文字列にレンダリングされるようにthis.state.detail.title最初の訪問は、実際には、返品は未定義、.TITLE「」レンダリングされました
   しかしthis.state.detail.author.loginnameは異なり、this.state.detail.authorすでにTypeError例外を投げる、undefined.loginnameに相当する、定義されていません
結論:
  空の文字列へのアクセスのプロパティはundefinedを返します
    例外TypeError未定義のアクセスのプロパティ
    TypeError例外を取り除くためにプロパティへのアクセスには存在しないNULL
   「」、ヌルに注意して、一種の未定義のプロパティを取得するときに生成された結果の、結果が制御不能を防止するためにどのように表示されます  
 
ソリューション:

   エラーを防ぐために行うには互換性のプロパティを使用する前に、直接スタックページをスローされます

  例如:this.state.detail.author.loginname我们可以改为this.state.detail.author && this.state.detail.author.loginname

おすすめ

転載: www.cnblogs.com/suihang/p/11863735.html