對(duì)于ListView 需要對(duì)數(shù)據(jù)進(jìn)行深度復(fù)制拱镐。
例如:
let dataBlod = []; // 緩存數(shù)組字段
當(dāng)需要?jiǎng)h除一個(gè)數(shù)據(jù)的時(shí)候,只需要
dataBlod.splice(this.state.checkIndex, 1)
但是這里刪除數(shù)據(jù)以后持际,在重新賦值給listview的datasource時(shí)候沃琅,發(fā)現(xiàn)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}
/>
只需要把深度復(fù)制的數(shù)組蜘欲,加載ListView的key上即可 就能刷新ListView了益眉。
郁悶這樣做的話 ,會(huì)出現(xiàn)一個(gè)問題姥份。
如果分頁加載郭脂,會(huì) 滾動(dòng)到listview的頂部 不知道如何解決了。澈歉。求教了
自己找到一個(gè)笨辦法展鸡,其實(shí)還是 復(fù)制給datasoure必須是一個(gè)新的對(duì)象,不然listview真不知道數(shù)組是否改變
let datas = JSON.parse(JSON.stringify(cacheResults.dataBlob))