React Native ListView列表多个数据源和状态机,取值,刷新状态机

来源:互联网 发布:谈谈你的php面试经历 编辑:程序博客网 时间:2024/06/16 01:47
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())    }