2017-01-17 8 views
1

私のReactアプリケーションではprop値をレンダリングしたいが、レンダリングが完了した後にプロップが更新されるまで存在しない。React:AFTERレンダリングのポップをレンダリングしようとしています

this.props.usersはオブジェクトですので、私は配列に変換するためにObject.keys()を使用し、それらをターゲットにキーを使用して、子要素をマップ:

// ... 
render() { 
    return { 
    <div className='users-list'> 
     <h4>Users List</h4> 
     {!isLoaded(users) ? '' : 
      Object.keys(users).map((key, i) => <p>{users[key].email}</p>) 
     } 
    </div> 
    } 
} 

これは動作しますが、それは私をたくさん取りましたコードをハッキングして適応させてそこに到達する。これについてもっと良い/より雄弁な方法がありますか?私はこれが本当に一般的なケースだと思うので!コンポーネントのライフサイクルはその中に入っていますか?

ありがとうございました。

+1

:ES6と非構造を使用して

const users = this.props.users || {}; 

。 –

+1

私は本当にこれに間違って何かが表示されません。コードは簡単に読み込まれます。一度ロードしたユーザーだけをレンダリングしたいと思っていることがわかります。コードから、ユーザーも最初のレンダーに必ずしも表示されないことがわかります。これは、反応コードベースで行うのはかなり一般的なことです –

+0

Ok。まあそれは知って良いです:)私は事前にリストを定義し、それがより良いかもしれないレンダリングのように感じた。しかし、私はそれを試みました。レンダリングの前に 'users'値を変数に代入しようとしました。その時点で' null'です。ちょうどこれが貧弱な練習ではないことを確かめたいありがとう。 – Paulos3000

答えて

0

デフォルトを指定してくださいか?あなたはそれを正しくやっている

const { users = {} } = this.props; 
関連する問題