Javascript 平面列表不维护唯一列表?

Javascript 平面列表不维护唯一列表?,javascript,react-native,Javascript,React Native,我想知道KeyExtrator是否有助于维护唯一列表? 如果是的话,那根本帮不了我 我试图在平面列表中显示元素,当一个新项目出现时,列表只是将其添加,而不检查列表的唯一性 我的主要目标是使我的列表独一无二,我已经尝试过ListView,它正在工作 由于使用rowHasChanged方法实现的逻辑,正在尝试查看是否有任何可用于FlatList的内容 构造函数(道具){ 超级(道具); 此.state={ 测试数据:[{ 条形码:“1”, StopAddress:“标签1” }] }; }; on

我想知道KeyExtrator是否有助于维护唯一列表? 如果是的话,那根本帮不了我

我试图在平面列表中显示元素,当一个新项目出现时,列表只是将其添加,而不检查列表的唯一性

我的主要目标是使我的列表独一无二,我已经尝试过ListView,它正在工作 由于使用rowHasChanged方法实现的逻辑,正在尝试查看是否有任何可用于FlatList的内容

构造函数(道具){
超级(道具);
此.state={
测试数据:[{
条形码:“1”,
StopAddress:“标签1”
}]
};
};
onReceivedMessage(消息){
var jsondata=JSON.parse(消息)
var dataTest=this.state.TESTDATA;
var Data=addressToDataMap.get(dataTest.barcode);
dataTest.push(jsondata);
这是我的国家({
TESTDATA:dataTest
});

}
我想知道KeyExtrator是否有助于维护唯一列表答案是否定的

解释:keyExtractor告诉列表使用react键的ID,而不是默认键属性。键有助于识别哪些项已更改、已添加或已删除。键还用于缓存,并作为跟踪项目重新排序的react键。这些独特的键使VirtualizedList(FlatList的构建基础)能够跟踪项目,并且在效率方面非常重要。默认情况下,keyExtractor返回到使用索引。比如说

<FlatList
  style={{}}
  data={this.state.FeedDataCollection}
  keyExtractor={(item, index) => item.key}
  renderItem={(rowData) =>this.RenderFeedCard(rowData)}
/>
item.key}
renderItem={(rowData)=>this.RenderFeedCard(rowData)}
/>

这里的
item.key
是key。因此,如果您想要基于唯一性显示元素,您必须为此编写一个逻辑。键盘提取器不能这样做。在此处了解有关React键和KeyExtractor的更多信息

下面的解释是否有用?