{"id":6376,"date":"2020-11-12T16:47:10","date_gmt":"2020-11-12T11:17:10","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=6376"},"modified":"2023-01-20T18:55:13","modified_gmt":"2023-01-20T13:25:13","slug":"pagination-in-react-native-load-more-data-dynamically","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/","title":{"rendered":"Pagination In React Native- Load More Data Dynamically"},"content":{"rendered":"<h1><b>Introduction<\/b><b>\u00a0<\/b><\/h1>\n<p><span style=\"font-weight: 400;\">The principle of loading a lot of data into chunks is pagination. Consider a situation in<\/span> <span style=\"font-weight: 400;\">which you have to fill a list of the names of 1000 individuals, so if we load all the data at<\/span> <span style=\"font-weight: 400;\">once, loading time and response time would also increase to enhance this, we will<\/span> <span style=\"font-weight: 400;\">enforce the pagination principle.<\/span><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><b>Process Flow<\/b><b>\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400;\">We&#8217;re going to use the FlatList definition to populate the data into a list to enforce<\/span> <span style=\"font-weight: 400;\">pagination. The following are two ways of doing this:<\/span><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\"> By using ListFooterComponent props.\u00a0<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> By using OnEndReached and onEndReachedThreshold props.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\"><strong>1. <\/strong><\/span><b>ListFooterComponent\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400;\">ListFooterComponent is a prop used by flatlist to render any footer component. For Ex: If you want to render a submit button or any information after the list then we will use this prop. <\/span><\/p>\n<p><b style=\"font-size: 1rem;\">2. OnEndReached and onEndReachedThreshold\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400;\">OnEndReached is another prop which accepts a function as value and whatever logic you want to perform, you can perform it. OnEndReachedThreshold will specify how far from the end (in units of visible length of the list) the bottom edge of the list must be from the end of the content to trigger the onEndReached callback.\u00a0<\/span><\/p>\n<p><b>Implementation<\/b><b>\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400;\">In this blog, I am going to use the following scenario:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">1. We are loading the first 10 rows from the web API call in useEffect hook.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">2. While the user reaches the bottom of the list we call the Web API again to get the<\/span> <span style=\"font-weight: 400;\">next 10 rows.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Note: We are using an open-source API for rendering data.<\/span><\/p>\n<ol>\n<li><b> By Using ListFooter Component<\/b><b><\/b><\/li>\n<\/ol>\n<pre class=\"lang:default decode:true \">const renderFooter = () =&gt; {\u00a0\r\n\r\nreturn (\u00a0\r\n\r\n\/\/Footer View with Load More button\u00a0\r\n\r\n&lt;View style={styles.footer}&gt;\u00a0\r\n\r\n&lt;TouchableOpacity\u00a0\r\n\r\nactiveOpacity={0.9}\u00a0\r\n\r\nonPress={getData}\u00a0\r\n\r\n\/\/On Click of button load more data\u00a0\r\n\r\nstyle={styles.loadMoreBtn}&gt;\u00a0\r\n\r\n&lt;Text style={styles.btnText}&gt;Load More&lt;\/Text&gt;\u00a0\r\n\r\n{loading ? (\u00a0\r\n\r\n&lt;ActivityIndicator\u00a0\r\n\r\ncolor=\"white\"\u00a0\r\n\r\nstyle={{ marginLeft: 8 }} \/&gt;\u00a0\r\n\r\n) : null}\u00a0\r\n\r\n&lt;\/TouchableOpacity&gt;\r\n\r\n&lt;\/View&gt;\u00a0\r\n\r\n);\u00a0\r\n\r\n};<\/pre>\n<ol start=\"2\">\n<li><b> By Using OnEndReached and OnEndReachedThreshold<\/b><\/li>\n<\/ol>\n<pre class=\"lang:default decode:true \">const onScrollBarEndReached = () =&gt; {\r\n\r\nreturn (\u00a0\r\n\r\n\/\/Footer View with Load More button\u00a0\r\n\r\n&lt;View style={styles.footer}&gt;\u00a0\r\n\r\n{\u00a0\r\n\r\ngetData()\u00a0\r\n\r\n}\u00a0\r\n\r\n{\u00a0\r\n\r\nloading ? (\u00a0\r\n\r\n&lt;ActivityIndicator\u00a0\r\n\r\ncolor=\"white\"\u00a0\r\n\r\nstyle={{ marginLeft: 8 }} \/&gt;\u00a0\r\n\r\n) : null}\u00a0\r\n\r\n&lt;\/View&gt;\u00a0\r\n\r\n);\u00a0\r\n\r\n};<\/pre>\n<p><span style=\"font-weight: 400;\">We have to pass this as a function reference in onEndReached props so that it<\/span> <span style=\"font-weight: 400;\">will get executed.<\/span><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><b>App.js<\/b><b>\u00a0<\/b><\/p>\n<pre class=\"lang:default decode:true \">import React, { useState, useEffect } from 'react';\u00a0\r\n\r\n\/\/import all the components we are going to use\u00a0\r\n\r\nimport {\u00a0\r\n\r\nSafeAreaView,\u00a0\r\n\r\nView,\u00a0\r\n\r\nText,\u00a0\r\n\r\nTouchableOpacity,\u00a0\r\n\r\nStyleSheet,\u00a0\r\n\r\nFlatList,\u00a0\r\n\r\nActivityIndicator,\u00a0\r\n\r\nImage\u00a0\r\n\r\n} from 'react-native';\u00a0\r\n\r\nconst App = () =&gt; {\u00a0\r\n\r\nconst [loading, setLoading] = useState(true);\u00a0\r\n\r\nconst [dataSource, setDataSource] = useState([]);\u00a0\r\n\r\nconst [offset, setOffset] = useState(0);\u00a0\r\n\r\nuseEffect(() =&gt; getData(), []);\u00a0\r\n\r\nconst getData = () =&gt; {\u00a0\r\n\r\nsetLoading(true);\u00a0\r\n\r\nfetch('http:\/\/jsonplaceholder.typicode.com\/photos?_start='+offset+'&amp;_limit= 10').then((response) =&gt; response.json()) .then((responseJson) =&gt; { \/\/Successful response\u00a0\r\n\r\nsetOffset(offset + 10);\u00a0\r\n\r\nconsole.log(offset);\u00a0\r\n\r\n\/\/Increasing the offset for the next API call\u00a0\r\n\r\nsetDataSource([...dataSource, ...responseJson]);\u00a0\r\n\r\n\/\/console.log(responseJson);\u00a0\r\n\r\nsetLoading(false);\u00a0\r\n\r\n}) .catch((error) =&gt; {\u00a0\r\n\r\nconsole.error(error);\u00a0\r\n\r\n});\r\n\r\n};\u00a0\r\n\r\nconst renderFooter = () =&gt; {\u00a0\r\n\r\nreturn (\u00a0\r\n\r\n\/\/Footer View with Load More button\u00a0\r\n\r\n&lt;View style={styles.footer}&gt;\u00a0\r\n\r\n{\/* &lt;TouchableOpacity\u00a0\r\n\r\nactiveOpacity={0.9}\u00a0\r\n\r\nonPress={getData}\u00a0\r\n\r\n\/\/On Click of button load more data\u00a0\r\n\r\nstyle={styles.loadMoreBtn}&gt;\u00a0\r\n\r\n&lt;Text style={styles.btnText}&gt;Load More&lt;\/Text&gt;\u00a0\r\n\r\n{loading ? (\u00a0\r\n\r\n&lt;ActivityIndicator\u00a0\r\n\r\ncolor=\"white\"\u00a0\r\n\r\nstyle={{ marginLeft: 8 }} \/&gt;\u00a0\r\n\r\n) : null}\u00a0\r\n\r\n&lt;\/TouchableOpacity&gt; *\/}\u00a0\r\n\r\n&lt;\/View&gt;\u00a0\r\n\r\n);\u00a0\r\n\r\n};\u00a0\r\n\r\nconst ItemView = ({ item }) =&gt; {\u00a0\r\n\r\nreturn (\u00a0\r\n\r\n\/\/ Flat List Item\u00a0\r\n\r\n&lt;View style={{\u00a0\r\n\r\nflexDirection:\"row\",\u00a0\r\n\r\npaddingVertical:10,\u00a0\r\n\r\n}}&gt;\u00a0\r\n\r\n&lt;Image source={{uri:item.url}} style={{ width: 40, height: 40 }} \/&gt; &lt;Text\u00a0\r\n\r\nnumberOfLines={4}\u00a0\r\n\r\nstyle={styles.itemStyle}\u00a0\r\n\r\nonPress={() =&gt; getItem(item)}&gt;\u00a0\r\n\r\n{item.title.toUpperCase()}\u00a0\r\n\r\n&lt;\/Text&gt;\u00a0\r\n\r\n&lt;\/View&gt;\u00a0\r\n\r\n);\u00a0\r\n\r\n};\r\n\r\nconst ItemSeparatorView = () =&gt; {\u00a0\r\n\r\nreturn (\u00a0\r\n\r\n\/\/ Flat List Item Separator\u00a0\r\n\r\n&lt;View\u00a0\r\n\r\nstyle={{\u00a0\r\n\r\nheight: 0.5,\u00a0\r\n\r\nwidth: '100%',\u00a0\r\n\r\nbackgroundColor: '#C8C8C8',\u00a0\r\n\r\n}}\u00a0\r\n\r\n\/&gt;\u00a0\r\n\r\n);\u00a0\r\n\r\n};\u00a0\r\n\r\nconst getItem = (item) =&gt; {\u00a0\r\n\r\n\/\/Function for click on an item\u00a0\r\n\r\nalert('Id : ' + item.id + ' Title : ' + item.title);\u00a0\r\n\r\n};\u00a0\r\n\r\nreturn (\u00a0\r\n\r\n&lt;SafeAreaView style={{ flex: 1 }}&gt;\u00a0\r\n\r\n&lt;View style={styles.container}&gt;\u00a0\r\n\r\n&lt;FlatList\u00a0\r\n\r\ndata={dataSource}\u00a0\r\n\r\nkeyExtractor={(item, index) =&gt; index.toString()}\u00a0\r\n\r\nItemSeparatorComponent={ItemSeparatorView}\u00a0\r\n\r\nenableEmptySections={true}\u00a0\r\n\r\nrenderItem={ItemView}\u00a0\r\n\r\nonEndReached={renderFooter}\u00a0\r\n\r\nonEndReachedThreshold={1}\u00a0\r\n\r\n\/\/ListFooterComponent={renderFooter}\u00a0\r\n\r\n\/&gt;\u00a0\r\n\r\n&lt;\/View&gt;\u00a0\r\n\r\n&lt;\/SafeAreaView&gt;\u00a0\r\n\r\n);\u00a0\r\n\r\n};\u00a0\r\n\r\nconst styles = StyleSheet.create({\u00a0\r\n\r\ncontainer: {\u00a0\r\n\r\njustifyContent: 'center',\u00a0\r\n\r\nflex: 1,\r\n\r\n},\u00a0\r\n\r\nfooter: {\u00a0\r\n\r\npadding: 10,\u00a0\r\n\r\njustifyContent: 'center',\u00a0\r\n\r\nalignItems: 'center',\u00a0\r\n\r\nflexDirection: 'row',\u00a0\r\n\r\n},\u00a0\r\n\r\nloadMoreBtn: {\u00a0\r\n\r\npadding: 10,\u00a0\r\n\r\nbackgroundColor: '#800000',\u00a0\r\n\r\nborderRadius: 4,\u00a0\r\n\r\nflexDirection: 'row',\u00a0\r\n\r\njustifyContent: 'center',\u00a0\r\n\r\nalignItems: 'center',\u00a0\r\n\r\n},\u00a0\r\n\r\nbtnText: {\u00a0\r\n\r\ncolor: 'white',\u00a0\r\n\r\nfontSize: 15,\u00a0\r\n\r\ntextAlign: 'center',\u00a0\r\n\r\n},\u00a0\r\n\r\nitemStyle:{\u00a0\r\n\r\n\/\/paddingVertical:10,\u00a0\r\n\r\nwidth:'90%',\u00a0\r\n\r\nmarginLeft:10,\u00a0\r\n\r\nmarginRight:10,\u00a0\r\n\r\nflexWrap:\"wrap\",\u00a0\r\n\r\n}\u00a0\r\n\r\n});\u00a0\r\n\r\nexport default App;<\/pre>\n<p><b>Output<\/b><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-6381 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991371.png\" alt=\"\" width=\"900\" height=\"1600\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991371.png 900w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991371-169x300.png 169w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991371-576x1024.png 576w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991371-768x1365.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991371-864x1536.png 864w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991371-624x1109.png 624w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-6382 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991420.png\" alt=\"\" width=\"900\" height=\"1600\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991420.png 900w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991420-169x300.png 169w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991420-576x1024.png 576w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991420-768x1365.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991420-864x1536.png 864w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991420-624x1109.png 624w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-6383 size-full\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991423.png\" alt=\"\" width=\"900\" height=\"1600\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991423.png 900w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991423-169x300.png 169w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991423-576x1024.png 576w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991423-768x1365.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991423-864x1536.png 864w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Screenshot_1604991423-624x1109.png 624w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction\u00a0 The principle of loading a lot of data into chunks is pagination. Consider a situation in which you have to fill a list of the names of 1000 individuals, so if we load all the data at once, loading time and response time would also increase to enhance this, we will enforce the pagination [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6377,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[412],"tags":[14,553],"class_list":["post-6376","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-react-native","tag-innovationm","tag-pagination-in-react-native-load-more-data-dynamically"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Pagination In React Native- Load More Data Dynamically - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pagination In React Native- Load More Data Dynamically - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"Introduction\u00a0 The principle of loading a lot of data into chunks is pagination. Consider a situation in which you have to fill a list of the names of 1000 individuals, so if we load all the data at once, loading time and response time would also increase to enhance this, we will enforce the pagination [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-12T11:17:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-20T13:25:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Pagination-In-React-Native.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Pagination In React Native- Load More Data Dynamically\",\"datePublished\":\"2020-11-12T11:17:10+00:00\",\"dateModified\":\"2023-01-20T13:25:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/\"},\"wordCount\":281,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/Pagination-In-React-Native.png\",\"keywords\":[\"InnovationM\",\"Pagination In React Native- Load More Data Dynamically\"],\"articleSection\":[\"React Native\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/\",\"name\":\"Pagination In React Native- Load More Data Dynamically - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/Pagination-In-React-Native.png\",\"datePublished\":\"2020-11-12T11:17:10+00:00\",\"dateModified\":\"2023-01-20T13:25:13+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/Pagination-In-React-Native.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/Pagination-In-React-Native.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/pagination-in-react-native-load-more-data-dynamically\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pagination In React Native- Load More Data Dynamically\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pagination In React Native- Load More Data Dynamically - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/","og_locale":"en_US","og_type":"article","og_title":"Pagination In React Native- Load More Data Dynamically - InnovationM - Blog","og_description":"Introduction\u00a0 The principle of loading a lot of data into chunks is pagination. Consider a situation in which you have to fill a list of the names of 1000 individuals, so if we load all the data at once, loading time and response time would also increase to enhance this, we will enforce the pagination [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/","og_site_name":"InnovationM - Blog","article_published_time":"2020-11-12T11:17:10+00:00","article_modified_time":"2023-01-20T13:25:13+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Pagination-In-React-Native.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Pagination In React Native- Load More Data Dynamically","datePublished":"2020-11-12T11:17:10+00:00","dateModified":"2023-01-20T13:25:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/"},"wordCount":281,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Pagination-In-React-Native.png","keywords":["InnovationM","Pagination In React Native- Load More Data Dynamically"],"articleSection":["React Native"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/","url":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/","name":"Pagination In React Native- Load More Data Dynamically - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Pagination-In-React-Native.png","datePublished":"2020-11-12T11:17:10+00:00","dateModified":"2023-01-20T13:25:13+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Pagination-In-React-Native.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/11\/Pagination-In-React-Native.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/pagination-in-react-native-load-more-data-dynamically\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Pagination In React Native- Load More Data Dynamically"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=6376"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6376\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/6377"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=6376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=6376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=6376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}