reactjs - 使用 flex 将项目添加到 n 列网格中
问题描述
我正在尝试创建一个类似于下图的项目列表。
目前我正在创建一个 RowComponent 并在其中包含 ItemContainer 组件以创建上述效果。
const styles = StyleSheet.create({
containerStyle: {
display: 'flex',
flexDirection: 'row',
},
});
const RowComponent = () => {
const { containerStyle } = styles;
return (
<View style={containerStyle}>
<ItemContainer />
<ItemContainer />
</View>
);
};
主屏幕视图
<View style={containerStyle}>
<RowComponent />
<RowComponent />
</View>
我发现这种方法效率很低,因此我希望知道如何通过复制 ItemContainer 来创建上述效果来创建这种效果。
例如:
<View style={containerStyle}>
<ItemContainer />
<ItemContainer />
<ItemContainer />
<ItemContainer />
</View>
解决方案
我如何通过复制 ItemContainer 来创建上述效果来创建这种效果。
您flexWrap
可以wrap
在containerStyle
. 像这样:
containerStyle: {
display: 'flex',
flexDirection: 'row',
flexWrap:"wrap"
},
现在没有RowComponent
你也可以实现相同的布局。
<View style={styles.containerStyle}>
<View style={styles.itemContainer} />
<View style={styles.itemContainer} />
<View style={styles.itemContainer} />
<View style={styles.itemContainer} />
<View style={styles.itemContainer} />
</View>
风格:
containerStyle: {
display: 'flex',
flexDirection: 'row',
flexWrap:"wrap"
},
itemContainer: {
width:"45%",
height:80,
marginRight:"5%",
marginBottom:10,
backgroundColor:"red"
}
推荐阅读
- pandas - Pandas - 动态地将变量传递给列名
- angular - Mat Table Angular 只有最后一个数据是从数组中打印出来的,每行中的每个字母也是如此
- node.js - 如何限制 node.js 中的流长度
- python - 如何在 TKinter 中迭代标签的抛出列表
- vb.net - 出现错误 System.Data.SqlClient.SqlException:'必须声明标量变量“@DoctorID”。'
- java - 无法从 Bosch IoT API 获取数据
- android - RecyclerView 中 CardView 项的滚动位置
- c# - 即使禁用控件,ObjectListView 也允许垂直滚动?
- arrays - 将项目添加到角度材料表
- r - 初学者:在 R 中设置时间序列