<SectionList
ref='sectionList'
style={{width:width-80,height:height-150}}
sections={sectionData}
renderItem={({item}) =>
<RightSectionListItem item={item}/>}
// onViewableItemsChanged = {(info)=>this.itemChange(info)} //滑动时调用
/>
其中sections 用来渲染的数据,类似于 FlatList 中的data属性。它的数据格式要求如下:
[
{ title: 'a', data: ['a1', 'a2'] },
{ title: 'b', data: ['b1', 'b2','b3'] },
{ title: 'c', data: ['c1'] },
]
然鹅~后台返回的数据可能不是这个样子滴,比如:
storeCategoryStore:[
{
catalogName:"热销",
goodList:[
{
img: require("../../../image/storePics/pic2.png"),
name: "中爆可乐双人套餐"
},
{
img: require("../../../image/storePics/pic2.png"),
name: "中爆可乐双人套餐",
}]
},
{
catalogName:"热销",
goodList:[
{
img: require("../../../image/storePics/pic2.png"),
name: "中爆可乐双人套餐"
},
{
img: require("../../../image/storePics/pic2.png"),
name: "中爆可乐双人套餐",
}]
}
]
当把数组的key值从data变成goodList时,组件就不识别这个数据了(本来想找后台改下,后台说字段都有联系改不了,咱也不懂咱也不敢问),然后就手动处理数据。如下:
//拿到数据,遍历,修改你需要的数据的key值,并返回新的数组
const newArr =
storeCategoryStore.map(item => ({
title:item.catalogName ,
data:item.goodList
}))
打印newArr如下:
[
{
title:"热销",
data:[
{
img: require("../../../image/storePics/pic2.png"),
name: "中爆可乐双人套餐"
},
{
img: require("../../../image/storePics/pic2.png"),
name: "中爆可乐双人套餐",
}]
},
{
title:"热销",
data:[
{
img: require("../../../image/storePics/pic2.png"),
name: "中爆可乐双人套餐"
},
{
img: require("../../../image/storePics/pic2.png"),
name: "中爆可乐双人套餐",
}]
}
]
如果你有更好的方法也可以分享一下,共同学习。
网友评论