2017-10-05 5 views
0

'd'を配列の下にレンダリングするには?配列の最後の要素の後に余分な要素をjsxに挿入しますか?

const App =() => (
    <div style={styles}> 
    {['a', 'b', 'c'].map((o, i) => { 
     return (<div>{o}</div>) 
    } 
    )} 
    </div> 
); 

は私がc後に新しい要素をマッピングし、レンダリングに使用することができますかconst x['a', 'b', 'c']を割り当てます言いますか?私は

のような最後の要素を得ることができます
{ 
    if(i === x.length - 1) { return('d') } 
} 

しかし、Cは、どのように4番目の要素を作成するだろうか?

+0

これはマップ内から行う必要がある特別な理由ですか?地図の後に 'd'を印刷できませんか? – CodingIntrigue

答えて

1

あなたがマップコールバックからの配列の両方のアイテムを返すことができます:あなたは、常に最後にDを追加するので、あなただけのループの後にタグを固執することができ、しかし

const x = ['a', 'b', 'c']; 
 

 
const App =() => (
 
    <div> 
 
    {x.map((o, i) => { 
 
     if(i === x.length - 1) { 
 
     return [ 
 
      <div key={i}>{o}</div>, 
 
      <div key={i + 1}>d</div> 
 
     ]; 
 
     } 
 
     
 
     return (<div key={i}>{o}</div>) 
 
    } 
 
    )} 
 
    </div> 
 
); 
 

 
ReactDOM.render(
 
    <App />, 
 
    app 
 
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 

 
<div id="app"></div>

const x = ['a', 'b', 'c']; 
 

 
const App =() => (
 
    <div> 
 
    {x.map((o, i) => {  
 
     return (<div key={i}>{o}</div>) 
 
    } 
 
    )} 
 
    
 
    <div>d</div> 
 
    </div> 
 
); 
 

 
ReactDOM.render(
 
    <App />, 
 
    app 
 
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 

 
<div id="app"></div>

+0

おそらく '[... x.map'で' [...] .concat'を置き換えることができました。 – CodingIntrigue

+0

@CodingIntrigue - 拡散だけでは配列の配列は平坦化されませんが、自動的に。つまり、スプレッドとコンカットをスキップできます。更新されたコードをご覧ください。 –

関連する問題