2016-10-03 7 views
2

が反応すると、ユーザーがいない場合、私は、ユーザー名のユーザーが反応:私はそれは私が新しいんだ

<NavItem eventKey={4} href="#">{this.state.name}</NavItem> 

を表示しますが、問題があるナビゲーションバーを作ったレンダリングする前の状態が存在するかどうかを確認できます私はthis.state.nameが未定義であるためにエラーが発生します。 this.state.nameがnavbarの一部としてレンダリングされる前に定義されているかどうか、またはこのエラーを取り除く良い方法があるかどうかを確認する方法はありますか?

答えて

0

あなたができることを確認:

let userNavItem 
if (this.state.name !== undefined) { 
    userNavItem = <NavItem eventKey={4} href="#">{this.state.name}</NavItem> 
} else { 
    userNavItem = null 
} 

は今、あなたはそれをあなたのナビゲーションバーのコンポーネントにuserNavItemを使用して、することができますthis.state.nameが定義されている場合にのみ描画されます。

3

確かに、三元使用:

render() { 
    return (
    this.state.name ? : <NavItem>{this.state.name}</NavItem> : null 
); 
} 

またはさらに短いを

render() { 
    return (
    this.state.name && <NavItem>{this.state.name}</NavItem> 
); 
} 
関連する問題