У меня есть рабочий пример перехвата события клика из приложения React Native и отправки его на панель инструментов Firebase Analytics . И я хочу показать вам, как я это сделал:)
Сначала я делаю универсальный HO C для любого сенсорного элемента
const withTracking = (WrappedComponent) => (props) => {
const { onPress, event, eventParams, ...otherProps } = props;
return (
<WrappedComponent
{...otherProps}
onPress={() => {
if (event) {
firebase.analytics().logEvent(event, eventParams);
}
props.onPress();
}}
/>
);
};
После этого я Я передаю в него свой осязаемый элемент
import { TouchableOpacity } from 'react-native';
const TrackingTouchableOpacity = withTracking(TouchableOpacity);
И когда он щелкает, я отправляю свою собственную информацию в Firebase Панель управления
<TrackingTouchableOpacity
onPress={this.openItem(item)}
event={'Look_Outfit'}
eventParams={{ target:'Auto', id: item.id, name: item.name }}
>
<Text>some touchable text</Text>
</TrackingTouchableOpacity>
Когда мы нажимаем на элемент, который мы вызываем firebase.analytics().logEvent(event, eventParams);
, и только после этого он вызывает нашу функцию this.openItem(item)
.
это работает для меня, если кому-то нравится, вы можете использовать этот подход, но я хочу спросить, есть ли у кого-то другой подход