UNPKG

react-native-pager-view-navigator

Version:

**react-native-pager-view-navigator** provides custom React hooks to manage navigation in [react-native-pager-view](https://github.com/callstack/react-native-pager-view). The package offers two hooks for pager initialization and navigation management.

146 lines (107 loc) 3.93 kB
# react-native-pager-view-navigator **react-native-pager-view-navigator** provides custom React hooks to manage navigation in [react-native-pager-view](https://github.com/callstack/react-native-pager-view). The package offers two hooks for pager initialization and navigation management. --- ## Installation Install the package along with its peer dependencies: ```bash npm install react-native-pager-view-navigator react-native-pager-view react-navigation-backhandler ``` --- ## Usage Here's an example of how to use the hooks to navigate between pages and handle navigation events. ### Example Code ```jsx import React, { useRef } from 'react'; import { View, Text, Button, StyleSheet } from 'react-native'; import PagerView from 'react-native-pager-view'; import { useInitializePagerNavigation, usePagerNavigationMethods, } from 'react-native-pager-view-navigator'; const App = () => { const pagerRef = useRef(null); // Initialize pager navigation const initialized = useInitializePagerNavigation(pagerRef, 0); // Access pager navigation methods const { navigate, goBack } = usePagerNavigationMethods(pagerRef); if (!initialized) { return null; // Show a loading indicator or fallback UI if initialization fails } return ( <View style={styles.container}> <PagerView ref={pagerRef} style={styles.pagerView} initialPage={0}> <View key="1" style={styles.page}> <Text style={styles.text}>Page 1</Text> </View> <View key="2" style={styles.page}> <Text style={styles.text}>Page 2</Text> </View> <View key="3" style={styles.page}> <Text style={styles.text}>Page 3</Text> </View> </PagerView> <View style={styles.buttonContainer}> <Button title="Go to Next Page" onPress={() => navigate(1)} /> <Button title="Go Back" onPress={goBack} /> </View> </View> ); }; const styles = StyleSheet.create({ container: { flex: 1, }, pagerView: { flex: 1, }, page: { justifyContent: 'center', alignItems: 'center', backgroundColor: '#f5f5f5', }, text: { fontSize: 18, fontWeight: 'bold', }, buttonContainer: { flexDirection: 'row', justifyContent: 'space-around', margin: 16, }, }); export default App; ``` --- ### Explanation 1. **Initialization**: const initialized = useInitializePagerNavigation(pagerRef, 0); Ensures that the pager is initialized correctly with the starting page. 2. **Navigation Methods**: const { navigate, goBack } = usePagerNavigationMethods(pagerRef); Provides methods for navigating to a specific page (`navigate`) and going back to the previous page (`goBack`). 3. **Buttons for Navigation**: - "Go to Next Page" navigates to the second page. - "Go Back" navigates back to the previous page in the stack. --- ## API ### useInitializePagerNavigation(pagerRef, initialPage) Initializes the pager navigation. #### Parameters: - pagerRef (Object): A React ref object created using useRef(). - initialPage (number): The index of the initial page. #### Returns: - true if initialization succeeds, otherwise false. --- ### usePagerNavigationMethods(pagerRef, initialPage) Provides methods to manage navigation. #### Parameters: - pagerRef (Object): A React ref object for the PagerView. - initialPage (number): The index of the initial page. #### Returns: - navigate(pageIndex): Navigates to the specified page index. - goBack(): Goes back to the previous page. - reset(pageIndex): Resets the navigation stack and sets the current page. - onPageSelected(event): Handles page selection events (useful for callbacks). --- ## License This project is licensed under the ISC License and code prepared by Switcherfaiz.