因此,我有一个从数据库获取游戏数组的api。我想在前端渲染它们。
我想确保每行最多有4个游戏。因此,如果有10场比赛,应该是这样的。
game game game game
game game game game
game game我试过以下几种方法:
this.state.sports.map((item, idx) => {
if((idx + 1) % 4 === 0){
game_list.push(
<div className="row">
<div key={item.name} className='each-game' >
{item.name}
<br/>
<img src={item.image} height = "100" width="100" alt = 'Not available'/>
</div>
</div>
)
}else{
game_list.push(
<div key={item.name} className='each-game'>
{item.name}
<br/>
<img src={item.image} height = "100" width="100" alt = 'Not available'/>
</div>
)
}
})
{ game_list }css
.row {
display: flex;
flex-direction: row;
}我得到了
game game game game game game game game game game有没有人可以帮我解决这个问题,或者告诉我一个更好的方法?非常感谢。
发布于 2019-05-22 02:39:13
这不是react问题,您可以只添加不带行的项目并设置flex-basis: 25%;
要将最后一行与lset对齐,您可以添加3个(如果n不同,则为n-1 )高度为0的“虚拟”项:
.cont {
display: flex;
flex-wrap: wrap;
}
.each-game {
flex-grow: 1;
flex-basis: 25%;
}
.dummy {
flex-grow: 1;
flex-basis: 25%;
height: 0;
}<div class="cont">
<div class='each-game'>game name</div>
<div class='each-game'>game name</div>
<div class='each-game'>game name</div>
<div class='each-game'>game name</div>
<div class='each-game'>game name</div>
<div class='each-game'>game name</div>
<div class='each-game'>game name</div>
<div class='each-game'>game name</div>
<div class='each-game'>game name</div>
<div class='each-game'>game name</div>
<div class="dummy"></div>
<div class="dummy"></div>
<div class="dummy"></div>
<div>
https://stackoverflow.com/questions/56244362
复制相似问题