Javascript 在滚动列表之前,FlatList不会重新呈现
我有一个平面列表,它是由视图状态中定义的数组生成的。通过过滤原始数组并将该数组设置为新过滤数组的状态来过滤列表。但是,只有在滚动列表时才会调用重新渲染。有没有办法强制重新渲染平面列表Javascript 在滚动列表之前,FlatList不会重新呈现,javascript,reactjs,react-native,react-native-flatlist,Javascript,Reactjs,React Native,React Native Flatlist,我有一个平面列表,它是由视图状态中定义的数组生成的。通过过滤原始数组并将该数组设置为新过滤数组的状态来过滤列表。但是,只有在滚动列表时才会调用重新渲染。有没有办法强制重新渲染平面列表 import setsArr from '../../json/sets'; . . . constructor (props) { super(props); this.state({ arrToDisplay: setsArr, }); } . . . _filter = (filter,v
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)}}/>
.
.
);
}
从'../../json/sets'导入setsArr;
.
.
.
建造师(道具){
超级(道具);
这个州({
arrto显示:设置arr,
});
}
.
.
.
_过滤器=(过滤器,值)=>{
var newArr=setsArr.filter(函数(){
返回(el.filter==值)
});
这是我的国家({
arrToDisplay:newArr,
});
}
渲染=(数据)=>{
返回(
{data.item.name}
);
}
渲染(){
返回(
.
.
.
this.renderOption(item)}/>
.
.
);
}
我在ListView、FlatList和SectionList中发现,只有当FlatList具有唯一键时,才会对数据源进行更改
如果有人给出正确的答案,我会很高兴,但这就是我现在所做的:
<FlatList
key={"mylist" + hashOfDataSourceObj}
...
您的用例是什么?