以下のような配列の値を決められたHTML構造で表示させたいです。
(HTML構造の変更は仕様により不可とさせて下さい)
.grid-innerの中の要素は「div.title要素」と「ul要素」の1セットですが、複数セット入ることもあるので、
添字か何かで指定できたらいいなと考えています。
■ うまくいってないところ
.map関数がうまく動いていない。
添字をそのままは使えないようなので、sliceメソッドを使った
list.slice(0).children.map
・無駄が多いと思うので、繰り返しをうまく活用したい。
よろしくお願いいたします。
react
1//配列はlistという変数にします。 2return ( 3 <div class="grid"> 4 <div class="grid-inner"> 5 <div className="title"> 6 <a href={list[0]._id}>{list[0].name}</a> 7 </div> 8 <ul className="footer-category-links"> 9 {list.slice(0).children.map((e) => ( 10 <li key={e._id}><a href={e._id}>{e.name}</a></li> 11 ))} 12 </ul> 13 <div className="title"> 14 <a href={list[1]._id}>{list[1].name}</a> 15 </div> 16 <ul className="footer-category-links"> 17 {list.slice(1).children.map((e) => ( 18 <li key={e._id}><a href={e._id}>{e.name}</a></li> 19 ))} 20 </ul> 21 </div> 22 <div class="grid-inner"> 23 <div className="title"> 24 <a href={list[2]._id}>{list[2].name}</a> 25 </div> 26 <ul className="footer-category-links"> 27 {list.slice(2).children.map((e) => ( 28 <li key={e._id}><a href={e._id}>{e.name}</a></li> 29 ))} 30 </ul> 31 </div> 32 </div> 33)
[ { _id: '/a', children: [ {_id: '/a/a', name: 'A/A'} {_id: '/a/b', name: 'A/B'} {_id: '/a/c', name: 'A/C'} {_id: '/a/d', name: 'A/D'} ], name: 'A' } {_id: '/b', children: Array(4), name: 'B'} {_id: '/c', children: Array(7), name: 'C'} {_id: '/d', children: Array(7), name: 'D'} {_id: '/e', children: Array(9), name: 'E'} {_id: '/f', children: Array(0), name: 'F'} {_id: '/g', children: Array(12), name: 'G'} {_id: '/h', children: Array(9), name: 'H'} ]
HTML
1<dvi class="grid"> 2 <div class="grid-inner"> 3 <div className="title"> 4 <a href="/a">A</a> 5 </div> 6 <ul> 7 <li> 8 <a href="/a/a">AA</a> 9 </li> 10 <li> 11 <a href="/a/b">AB</a> 12 </li> 13 <li> 14 <a href="/a/c">AC</a> 15 </li> 16 <li> 17 <a href="/a/d">AD</a> 18 </li> 19 </ul> 20 <div className="title"> 21 <a href="/b">B</a> 22 </div> 23 <ul> 24 <li> 25 <a href="/b/a">BA</a> 26 </li> 27 <li> 28 <a href="/b/b">BB</a> 29 </li> 30 <li> 31 <a href="/b/c">BC</a> 32 </li> 33 <li> 34 <a href="/b/d">BD</a> 35 </li> 36 </ul> 37 </div> 38 <div class="grid-inner"> 39 <div className="title"> 40 <a href="/c">C</a> 41 </div> 42 <ul> 43 <li> 44 <a href="/c/a">CA</a> 45 </li> 46 <li> 47 <a href="/c/b">CB</a> 48 </li> 49 <li> 50 <a href="/c/c">CC</a> 51 </li> 52 <li> 53 <a href="/c/d">CD</a> 54 </li> 55 <li> 56 <a href="/c/e">CE</a> 57 </li> 58 <li> 59 <a href="/c/f">CF</a> 60 </li> 61 <li> 62 <a href="/c/g">CG</a> 63 </li> 64 </ul> 65 </div> 66 // 以下defghは省略 67</dvi>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。