0.2.0 • Published 2 years ago
react-native-intersection-observer v0.2.0
react-native-intersection-observer
React Native implementation of the Intersection Observer API to tell you when an element enters or leaves the viewport.
Installation
Install using Yarn:
yarn add react-native-intersection-observeror NPM:
npm install react-native-intersection-observer --saveUsage
You can pass any component to the <InView />, and it will handle creating the
wrapping View component. Add a handler to the onChange method, and control the
state in your own component. Any extra props you add to <InView> will be
passed to the View component, allowing you to set the style, etc.
import { IOScrollView, InView } from 'react-native-intersection-observer'
const Component = () => (
<IOScrollView>
<InView onChange={(inView: boolean) => console.log('Inview:', inView)}>
<Text>Plain children are always rendered. Use onChange to monitor state.</Text>
</InView>
</IOScrollView>
)
export default ComponentAPI
IOScrollView Props
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| rootMargin | { top: number; left: number; right: number; bottom: number } | undefined | false | root margin |
InView Props
The <InView /> component also accepts the following props:
| Name | Type | Default | Required | Description |
|---|---|---|---|---|
| as | ComponentType | View | false | Render the wrapping element as this element. Defaults to View. |
| children | ReactNode | true | Children expects a plain child, to have the <InView /> deal with the wrapping element. | |
| triggerOnce | boolean | false | false | Only trigger this method once |
| onChange | (inView: boolean) => void | false | Call this function whenever the in view state changes. It will receive the inView boolean, alongside the current IntersectionObserverEntry. |
License
react-native-intersection-observer is MIT licensed.