React Native provide component called FlatList which is used for listing any type dynamic or static data. In this blog we will discuss how to implement a FlatList in React Native.

To use FlatList component import FlatList  from 'react-native' as below.

import {SafeAreaView,View,StyleSheet,Text,FlatList} from 'react-native';


Now define an array of data which will bind in flatlist, Here i am taking static data as below , you can have your own static or dynamic data from API endpoint.

const data=[
{key:"1",title:"Android"},
{key:"2",title:"IOS"},
{key:"3",title:"React"},
{key:"4",title:"Node JS"},
{key:"5",title:"Java"},
{key:"6",title:"PHP"},
{key:"7",title:"Javascript"},
];


Now call FlatList component with data-source.

 <FlatList
data={data}
renderItem={({item})=>this.renderItem(item)}
keyExtractor={item=>item.key}
/>


That's all, we done with flatlist so complete component will looks like

import React, {Component} from 'react';
import {SafeAreaView,View,StyleSheet,Text,FlatList,Alert} from 'react-native';
import Constants from 'expo-constants';
const data=[
{key:"1",title:"Android"},
{key:"2",title:"IOS"},
{key:"3",title:"React"},
{key:"4",title:"Node JS"},
{key:"5",title:"Java"},
{key:"6",title:"PHP"},
{key:"7",title:"Javascript"},
];
class FlatListScreen extends Component {
renderItem=(item)=>{
return(
<View key={item.key} style={styles.item}>
<Text>{item.title}Text>
>
)
}
render(){
return(
<SafeAreaView style={styles.container}>
<FlatList
data={data}
renderItem={({item})=>this.renderItem(item)}
keyExtractor={item=>item.key}
/>
SafeAreaView>
)
}
}
export default FlatListScreen;

const styles =StyleSheet.create({
container: {
flex: 1,
marginTop: Constants.statusBarHeight,
padding:10
},
item:{
padding:10,
borderWidth:1,
borderRadius:5,
borderColor:"#c1dec5",
marginBottom:10},
})


Now if want to display item title on touch of list item, or other operation on an item then modified your renderItem function as bellow

      showItem=(data)=>{
    Alert.alert(data);
    }
renderItem=(item)=>{
return(
<View key={item.key} style={styles.item}>
<TouchableOpacity onPress={()=>this.showItem(item.title)}>
<Text>{item.title}Text>
>
>
)
}

0 Comments

Leave a reply

Your email address will be private. Required fields are marked with *

Name *
Email *
Website