constructor(props) {
super(props);
this.dataSource = Array(2).fill(
new ListView.DataSource({
/*判断这两行是否相同,就是是否发生变化,决定渲染哪些行组件,避免全部渲染,提高渲染效率*/
rowHasChanged: (oldRow, newRow) => {
return oldRow !== newRow
}
})
);
this.state = {//状态机变量声明,
selectTab: 0,
listParams: Array(2).fill({
dataArray: [],
listState: CommonListView.STATE_INIT,
enableLoadMore: false,
pageNum: 1,
}),
searchParams: Array(2).fill({
searchText: '',
isHighlightFilter: false
}),
};
}
componentDidMount() {
this.setSearchParams({searchText: 'searchText', isHighlightFilter: true})
this.dataSource[this.state.selectTab] = this.dataSource[this.state.selectTab].cloneWithRows(newArray);
}
<ListView
dataSource={this.dataSource[this.state.selectTab]}>
</ListView>
setSearchParams(obj = {}, callBack) {
let newSearchParams = this.state.searchParams;
newSearchParams[this.state.selectTab] = Object.assign({}, newSearchParams[this.state.selectTab], obj);
this.setState({ // 重写setState, 刷新状态机
searchParams: newSearchParams
}, callBack && callBack())
}