PressableContextWrapper
Wraps its children in a PressableContext.
Children can be a ReactNode or a Render Props function receiving TrackingContext.
PressableContextWrapper: (props: {
children: ReactNode | ((parameters: TrackingContext) => ReactNode),
id: string
}) => ReactElement
Parameters
type | ||
---|---|---|
required | children | ReactNode | ((parameters: TrackingContext) => void) |
required | id | string |
Returns
ReactElement
Usage example
Enrich Locations
import { PressableContextWrapper } from '@objectiv/tracker-react-native';
<PressableContextWrapper id={'do-it'}>
<Button title={'Do it'} onPress={() => doIt()}/>
</PressableContextWrapper>
Tracking via Render Props
import {
PressableContextWrapper,
trackFailureEvent,
trackPressEvent,
trackSuccessEvent
} from '@objectiv/tracker-react-native';
<PressableContextWrapper id={'do-it'}>
{(trackingContext) => (
<Button title={'Do it'} onClick={async () => {
trackPressEvent(trackingContext);
const response = await doIt();
if (response.ok) {
trackSuccessEvent({
message: response.statusText,
...trackingContext
});
} else {
trackFailureEvent({
message: error.message,
...trackingContext
});
}
}}/>
)}
</PressableContextWrapper>
info
The above is just an example to illustrate the Render Props functionality.
Check out our Tracked Components for ready-to-use Components.
Did you know ?
PressableContextWrapper
internally uses LocationContextWrapper.