React Native FlatList keyExtractor 和 listKey

Rau*_*aul 2 javascript reactjs react-native

我有多个关于 FlatList 的问题,阅读文档后无法回答。

什么时候需要使用listKey,什么时候需要使用keyExtractor?有时,当我有同级 FlatList 时,我必须在每个列表中指定 listKey,如下所示:

      renderItem = (item, index) => (<View key={item.id} />)

      <FlatList
           keyExtractor={({id}) => id}
           listKey="MusicList"
           renderItem={this.renderItem}
       />

       <FlatList
           keyExtractor={({id}) => id}
           listKey="BooksList"
       />
Run Code Online (Sandbox Code Playgroud)

我可以同时拥有listKey和keyExtractor吗?

到目前为止我一直在想的是 listKey 就像一个 keyExtractor 但对于列表来说,并且 keyExtractor 标识列表中的每个项目......是吗?

谢谢。

Sou*_*Dey 8

keyExtractor是一个用于为FlatList的每个项目提取唯一键的函数。listKey是VirtualizedList唯一标识符。如果在另一个 VirtualizedList 中嵌套有多个 VirtualizedList,则该键对于虚拟化正常工作是必需的。

从您发布的示例中,keyExtractor 是 Fl​​atLists 中每个项目的唯一标识符。listKey是每个列表的标识符。