美文网首页
React Native ListView 删除元素,刷新列表问

React Native ListView 删除元素,刷新列表问

作者: 剌小胥 | 来源:发表于2016-10-16 16:57 被阅读2599次

    对于ListView 需要对数据进行深度复制。
    例如:
    let dataBlod = []; // 缓存数组字段
    当需要删除一个数据的时候,只需要
    dataBlod.splice(this.state.checkIndex, 1)

    但是这里删除数据以后,在重新赋值给listview的datasource时候,发现ListView没有刷新,
    解决办法如下:

    <ListView
        key = {dataBlob}
        initialListSize = {1}
        onEndReached = {this._renderEndReached.bind(this)}
        onEndReachedThreshold = {20}
        dataSource = {this.state.dataSource} 
        renderRow = {this._renderItem.bind(this)}
        renderFooter = {this._renderFooter.bind(this)}
        style = {styles.listview}
        showsVerticalScrollIndicator={false}
    />
    

    只需要把深度复制的数组,加载ListView的key上即可 就能刷新ListView了。

    郁闷这样做的话 ,会出现一个问题。
    如果分页加载,会 滚动到listview的顶部 不知道如何解决了。。求教了

    自己找到一个笨办法,其实还是 复制给datasoure必须是一个新的对象,不然listview真不知道数组是否改变
    let datas = JSON.parse(JSON.stringify(cacheResults.dataBlob))

    相关文章

      网友评论

          本文标题:React Native ListView 删除元素,刷新列表问

          本文链接:https://www.haomeiwen.com/subject/litayttx.html