Skip to content

Latest commit

 

History

History
59 lines (42 loc) · 1.97 KB

File metadata and controls

59 lines (42 loc) · 1.97 KB

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-observer

or NPM:

npm install react-native-intersection-observer --save

Usage

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 Component

API

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.