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}
  ...

您的用例是什么?