2016-08-18 19 views
0

はthis.state.showAllUserがfalseの場合、私は、配列の3が表示されますかtrueの場合、それらのすべてを表示htmlコードを変数として作成して使用するには?以下

<ul> 
    {this.state.showAllUser == false 
     ? someArray.slice(0, 3).map(function(user, index) { 
       return (
        <li key={index}> {user.name}<li> 
      ) 
     : someArray.map(function(user, index) { 
       return (
        <li key={index}> {user.name}<li> 
      ) 
    } 
</ul> 

.....私のサンプルコードです。

私の質問、このコードをよりきれいにする方法です、私は、関数や変数を作成し、機能を参照してくださいにそれを使用することができます

答えて

1

あなたはそうのように、代わりにアレイ方式を使用することができます。?

<ul> 
     {someArray.filter(function(el, index) { 
     if (!this.state.showAllUser) { 
      // Print the first 3 elements 
      return (index < 3) 
     } else { 
      // Print all 
      return true 
     } 
     }) 
     .map(function(user, index) { 
     return (<li key={index}> {user.name}</li>) 
     }) 
    } 
</ul> 

どのような要素が表示されるか、どの要素が表示されないかは非常に明確です。

さらに、仮想DOM部分を1回だけ書き込むことができます。

+0

ありがとう。本当に助けてくれます。 – Dreams

1
<ul> 
    { 
    (this.state.showAllUser == false ? someArray.slice(0, 3) : someArray).map((user, index) => <li key={index}> {user.name}<li>); 
    } 
</ul> 
+0

ありがとうございますが、私はes5が必要です。 – Dreams

関連する問題