Categories
JavaScript Answers React Native Answers

How to implement pull to refresh FlatList with React Native?

Spread the love

Sometimes, we want to implement pull to refresh FlatList with React Native.

In this article, we’ll look at how to implement pull to refresh FlatList with React Native.

How to implement pull to refresh FlatList with React Native?

To implement pull to refresh FlatList with React Native, we can set the refreshing and onRefresh props.

For instance, we write:

import * as React from 'react';
import { FlatList, Text, View } from 'react-native';
import Constants from 'expo-constants';
import { Card } from 'react-native-paper';

const flatListItems = Array(200)
  .fill()
  .map((_, i) => ({ title: i, id: i }));

const Item = ({ title }) => (
  <View
    style={{
      backgroundColor: '#f9c2ff',
      padding: 20,
      marginVertical: 8,
      marginHorizontal: 16,
    }}>
    <Text>{title}</Text>
  </View>
);

const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

export default function App() {
  const [isFetching, setIsFetching] = React.useState(false);
  const renderItem = ({ item }) => <Item title={item.title} />;

  const onRefresh = async () => {
    setIsFetching(true);
    await sleep(2000);
    setIsFetching(false);
  };

  return (
    <View>
      <FlatList
        data={flatListItems}
        onRefresh={onRefresh}
        refreshing={isFetching}
        renderItem={renderItem}
        keyExtractor={(item) => item.id}
      />
    </View>
  );
}

to set the refreshing prop to isFetching, which is true when we’re getting data for the FlatList.

And we set onRefresh to the onRefresh which sets refreshing to true and then set it back to false after 2 seconds.

Conclusion

To implement pull to refresh FlatList with React Native, we can set the refreshing and onRefresh props.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *