场景:请求到数据之后打算使用瀑布流形式展示
在请求到数据之后,来创建瀑布流所需要的数据格式
//数据处理方法
_CreateFlexList=(list)=> {
//要现实的列数,可以动态设置
let columnCount = 2;
let FlexList = [];
// 创建列数空数组
for (let i = 0; i < columnCount; i++) {
FlexList.push([]);
// 按顺序将每个元素放到每列里面,保证瀑布流渲染元素出厂顺序不变
for (let j = i; j < list.length; j += columnCount) {
FlexList[i].push(list[j]);
}
}
console.log(FlexList)
}
有了对应格式的数据之后,我们来渲染到页面
<View classname='columnView'>
{
List && Array.from(List).map((data, index) => {
return (
<View key={index + "id"} classname='column'>
{
data.map((item) => {
return (
<View classname='item'>
<Text>{item.name}</Text>
<Image src={item.image} />
</View>
)
})
}
</View>
)
})
}
</View>
对应的css
.columnView {
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
.column {
display: flex;
flex-flow: column wrap;
.item{
display: flex;
flex-direction: column;
align-items: center;
background-color: #ffffff;
border: 0.5PX solid rgba(0, 0, 0, 0.05);
border-radius: 4PX;
margin-bottom: 12PX;
}
}
}