How do I Check if element is visible after scrolling for react-native? saw some examples for react, but am looking specifically for react-native. Would like to track impressions and clicks
How to Check if element is visible after scrolling for react-native? (tracking impressions and clicks)
8.6k views Asked by changey At
2
There are 2 answers
0
On
React Native FlatList has two props which can be used to track impressions:
onViewableItemsChanged(docs) and viewabilityConfig(docs)
They can be used as follows:
import React, { useState, useCallback } from 'react';
import { FlatList, View, Text } from 'react-native';
const MyComponent = () => {
const [viewedItems, setViewedItems] = useState([]);
const handleViewableItemsChanged = useCallback(({ viewableItems }) => {
setViewedItems(viewedItems.map(item => item.key));
}, []);
return (
<FlatList
data={myData} // replace with your data
renderItem={({ item }) => (
<View>
<Text>{item.title}</Text>
</View>
)}
keyExtractor={item => item.id}
onViewableItemsChanged={handleViewableItemsChanged}
viewabilityConfig={{
itemVisiblePercentThreshold: 50 // adjust this and other parameters as needed
}}
/>
);
};
export default MyComponent;
ended up implementing a lib
https://www.npmjs.com/package/react-native-component-inview
References:
https://medium.com/@sanishkr/react-components-tracking-impressions-and-clicks-2fc9af1cc2c