如何在 React Native 中获取 Flatlist 中的行索引
How do I get the row index in a Flatlist in react native
我在我的 React 本机应用程序中使用 Flatlist 来显示图像轮播,我需要将某种计数器(索引)传递给显示的每个项目。
这是我的代码,我需要将索引传递给 imgCounter 参数
<FlatList
horizontal={true}
data={data}
pagingEnabled
keyExtractor={(item) => item.id.toString()}
renderItem={(itemData) => (
<HomeGalleryItem
id={itemData.item.id}
imgCounter={???}
backdrop={itemData.item.backdrop_path}
title={itemData.item.title}
/>
)}
/>
我尝试将计数器设置为
let counter=0
然后在 Flatlist 中使用它作为
imgCounter={counter++}
但它并不总是从 0 开始,它有点随机。
阅读 docs for renderItem
,在回调参数对象中提供索引。
renderItem({ item, index, separators });
您将参数命名为 itemData
,因此可以通过 itemData.index
访问它。
<FlatList
horizontal={true}
data={data}
pagingEnabled
keyExtractor={(item) => item.id.toString()}
renderItem={(itemData) => (
<HomeGalleryItem
id={itemData.item.id}
imgCounter={itemData.index}
backdrop={itemData.item.backdrop_path}
title={itemData.item.title}
/>
)}
/>
如果我不得不猜测 "jumpiness" 使用计数器,那可能与 flatlist 对虚拟化的使用有关。 Flatlist 是 VirtualizedList
.
的便利包装器
索引已经传入 renderItem。
<FlatList
horizontal={true}
data={data}
pagingEnabled
keyExtractor={(item) => item.id.toString()}
renderItem={(itemData) => (
<HomeGalleryItem
id={itemData.item.id}
imgCounter={itemData.index}
backdrop={itemData.item.backdrop_path}
title={itemData.item.title}
/>
)}
/>
我在我的 React 本机应用程序中使用 Flatlist 来显示图像轮播,我需要将某种计数器(索引)传递给显示的每个项目。
这是我的代码,我需要将索引传递给 imgCounter 参数
<FlatList
horizontal={true}
data={data}
pagingEnabled
keyExtractor={(item) => item.id.toString()}
renderItem={(itemData) => (
<HomeGalleryItem
id={itemData.item.id}
imgCounter={???}
backdrop={itemData.item.backdrop_path}
title={itemData.item.title}
/>
)}
/>
我尝试将计数器设置为
let counter=0
然后在 Flatlist 中使用它作为
imgCounter={counter++}
但它并不总是从 0 开始,它有点随机。
阅读 docs for renderItem
,在回调参数对象中提供索引。
renderItem({ item, index, separators });
您将参数命名为 itemData
,因此可以通过 itemData.index
访问它。
<FlatList
horizontal={true}
data={data}
pagingEnabled
keyExtractor={(item) => item.id.toString()}
renderItem={(itemData) => (
<HomeGalleryItem
id={itemData.item.id}
imgCounter={itemData.index}
backdrop={itemData.item.backdrop_path}
title={itemData.item.title}
/>
)}
/>
如果我不得不猜测 "jumpiness" 使用计数器,那可能与 flatlist 对虚拟化的使用有关。 Flatlist 是 VirtualizedList
.
索引已经传入 renderItem。
<FlatList
horizontal={true}
data={data}
pagingEnabled
keyExtractor={(item) => item.id.toString()}
renderItem={(itemData) => (
<HomeGalleryItem
id={itemData.item.id}
imgCounter={itemData.index}
backdrop={itemData.item.backdrop_path}
title={itemData.item.title}
/>
)}
/>