Skip to content

React Native component that monitors when an element enters or leaves the client viewport.

Notifications You must be signed in to change notification settings

scrambledeggs/react-native-intersection-observer

 
 

Repository files navigation

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.

About

React Native component that monitors when an element enters or leaves the client viewport.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 39.0%
  • Java 28.6%
  • C++ 12.9%
  • Objective-C++ 6.7%
  • Objective-C 4.5%
  • Makefile 2.8%
  • Other 5.5%