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

2016-10-16  本文已影响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))

上一篇下一篇

猜你喜欢

热点阅读