2017-06-07 26 views
2

我有一個FlatList,它是由在視圖狀態中定義的數組提供的。該列表通過過濾原始數組並將該數組設置爲具有新過濾數組的狀態來過濾。但重新渲染僅在列表滾動時調用。有沒有辦法強制重新渲染平板清單?FlatList不會重新呈現,直到滾動列表

import setsArr from '../../json/sets'; 
. 
. 
. 
constructor (props) { 
    super(props); 
    this.state({ 
    arrToDisplay: setsArr, 
    }); 
} 
. 
. 
. 
_filter = (filter,value) => { 
    var newArr = setsArr.filter(function(){ 
       return (el.filter === value) 
       }); 
    this.setState({ 
    arrToDisplay: newArr, 
    }); 
} 

renderOption = (data) => { 
    return (
    <Text>{data.item.name}</Text> 
); 
} 
render() { 
    return (
     . 
     . 
     . 
     <FlatList 
     data={this.state.arrToDisplay} 
     renderItem={(item) => this.renderOption(item)}}/> 
     . 
     . 
    ); 
} 
+0

什麼是你的使用情況? – whitep4nther

回答

0

我發現與ListView,FlatList和SectionList,更改爲只有FlatList具有唯一鍵時呈現的數據源。

,我會很高興,如果有人發佈一個合適的回答,但是這是我現在在做什麼:

<FlatList 
    key={"mylist" + hashOfDataSourceObj} 
    ... 

看到https://stackoverflow.com/a/31481960/7223