美文网首页
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