React-native ListView分组demo

constructor(props){

super(props)

var getSectionData = (dataBlob,sectionIndex) => {

return dataBlob[sectionIndex]

}

var getRowData = (dataBlob ,sectionIndex, rowIndex) => {

return dataBlob[sectionIndex + ':' + rowIndex]

}

this.state = {

dataSource : new ListView.DataSource({

getSectionHeaderData: getSectionData,//获取组中的数据

getRowData:getRowData,//获取行中数据

rowHasChanged:(r1,r2) => r1!==r2,

sectionHeaderHasChanged:(s1,s2) => s1 !== s2

})

}

}

核心如下:

//复杂的操作,数据请求 或者 异步操作(定时器)

componentDidMount(){

//调用json数据

this.loadDataFromJson();

}

loadDataFromJson(){

//拿到json数据

var jsonData = Car.data

//定义一些变量

var dataBlob = {},

sectionIDs = [],

rowIDs = [],

cars = [];

//遍历

for (var i = 0; i < jsonData.length; i++){

//1.把组号放入sectionIDs数组中

sectionIDs.push(i)

//2.把组中内容放入dataBlod对象

dataBlob[i] = jsonData[i].title

//3.取出该组中所有的车

cars = jsonData[i].cars

rowIDs[i] = [];

//4.遍历所有的车数组

for(var j=0; j<car.length;j++){

rowIDs[i].push(j)

dataBlob[i+':'+j] = cars[j]

}}

//更新状态

this.setState({

dataSource:this.state.dataSource.cloneWithRowsAndSections(dataBlob,sectionIDs,rowIDs)

});

效果图


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容