我有一个VideoGridItem
组件列表,我希望在网格中呈现这些组件。我正在使用react-native-easy-grid
,因此我处理了Grid
,Row
和Col
。
每行应该有2 VideoGridItem
个,所以我想每2个包裹Row
个组件。
我怎样才能做到这一点?
我的标记实际上看起来有点像:
<Grid>
<Row>
<VideoGridItem /> { /* Renders a <Col> */ }
<VideoGridItem />
</Row>
<Row>
<VideoGridItem />
<VideoGridItem />
</Row>
<Row>
<VideoGridItem />
<VideoGridItem />
</Row>
</Grid>
现在我有
<Grid>
<VideoGridItem /> { /* Renders a <Col> */ }
<VideoGridItem />
<VideoGridItem />
<VideoGridItem />
<VideoGridItem />
<VideoGridItem />
</Grid>
答案 0 :(得分:0)
假设您知道基于数组渲染的数量......
const renderedRows = []
for (let i = 0; i < myVidItems.length; i += 2) {
renderedRows.push(
<Row>
{Array(myVidItems[i + 1] ? 2 : 1).fill(<VideoGridItem />)}
</Row>
)
}
[...]
<Grid>
{renderedRows}
</Grid>
我希望有一个更好的方式。
答案 1 :(得分:0)
答案 2 :(得分:0)
也许你应该看看flexbox
flexbox可以根据您的屏幕分辨率显示内容。它易于使用: - )
答案 3 :(得分:0)
如果您愿意使用Lodash,您可以
const rows = _.chunk(videoGridItems, 2).map(vgis => <Row>{vgis}</Row>);