栗子:
數(shù)據(jù)格式:
注意:在使用renderScetionHeader方法的時(shí)候,傳遞給函數(shù)的參數(shù)名稱一定要是section徘郭,否則他不會(huì)渲染并且會(huì)報(bào)錯(cuò)。
SectionList常用屬性
sections: Array相當(dāng)于ListView中的數(shù)據(jù)源胧后,SectionList所需要的數(shù)據(jù)都是經(jīng)由sections屬性傳入,數(shù)據(jù)類型為Array類型
renderItem: (info: {item: Item, index: number}) => ?React.Element renderItem返回Section中的每個(gè)小的的Item纸巷×鲋迹可以通過函數(shù)返回Element存哲,函數(shù)有一個(gè)info參數(shù)祟偷,參數(shù)為JSON形式,參數(shù)形式為:{item: Item, index: number}贺辰。
renderSectionHeader: (info: {section: SectionT}) => ?react.Element renderSectionHeader返回每個(gè)Section的標(biāo)志性頭部饲化,可以通過函數(shù)返回Element吃靠,函數(shù)有一個(gè)info參數(shù)撩笆,參數(shù)為JSON形式缸浦,參數(shù)形式為:{section:{key : number, data : [ Object, Object, …] }}。
refreshing: boolean 是否處于刷新狀態(tài)歹鱼。
onRefresh: () => void 通過函數(shù)改變r(jià)efreshing從而控制刷新與否弥姻。
ItemSeparatorComponent: ReactClass item之間的分隔線組件庭敦。不會(huì)出現(xiàn)在第一行之前和最后一行之后秧廉。
SectionSeparatorComponent: ReactClass .每個(gè)section之間的分隔組件疼电。
ListHeaderComponent: ReactClass SectionList頭部組件蔽豺。
ListFooterComponent: ReactClass SectionList尾部組件拧粪。
keyExtractor: (item: Item, index: number) => string 默認(rèn)情況下每個(gè)item都需要提供一個(gè)不重復(fù)的key屬性,因此可以通過keyExtractor函數(shù)為每一個(gè)item生成一個(gè)唯一的key正什。
onEndReached: (info: {distanceFromEnd: number}) => void 是否到達(dá)底部婴氮,在默認(rèn)情況下會(huì)有一個(gè)默認(rèn)的distanceFromEnd臨界值《苤拢可以通過此屬性來達(dá)到上拉加載的效果主经。
onEndReachedThresholdnumber 調(diào)用onEndReached之前的臨界值,單位是像素庭惜。
-
注意:為了優(yōu)化內(nèi)存占用同時(shí)保持滑動(dòng)的流暢罩驻,列表內(nèi)容會(huì)在屏幕外異步繪制。這意味著如果用戶滑動(dòng)的速度超過渲染的速度护赊,則會(huì)先看到空白的內(nèi)容惠遏。這是為了優(yōu)化不得不作出的妥協(xié),目前官方也在改進(jìn)中骏啰。
栗子:
首先是引入要用到的組件:
之后是定義的class類中的render方法中需要渲染的組件樣式
組件用到的方法:
具體可參考:http://blog.csdn.net/qq_38453189/article/details/72810741