yarn add react-native-grid-list or
npm install react-native-grid-list --save import React, { PureComponent } from 'react'; import { View, StyleSheet, Image } from 'react-native'; import GridList from 'react-native-grid-list'; const items = [ { thumbnail: { uri: 'https://lorempixel.com/200/200/animals' } }, { thumbnail: { uri: 'https://lorempixel.com/200/200/city' } }, { thumbnail: { uri: 'https://lorempixel.com/200/200/nature' } }, { thumbnail: { uri: 'https://lorempixel.com/200/200/cats' } }, ]; export default class App extends PureComponent { renderItem = ({ item, index }) => ( <Image style={styles.image} source={item.thumbnail} /> ); render() { return ( <View style={styles.container}> <GridList showSeparator data={items} numColumns={3} renderItem={this.renderItem} /> </View> ); } } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: 'white', }, image: { width: '100%', height: '100%', borderRadius: 10, }, });Check the code here
You can use all the props from FlatList: http://facebook.github.io/react-native/docs/flatlist.html
| Prop | Default | Type | Description |
|---|---|---|---|
| children | - | node | Children elements |
| data | not required if children is used | array | Data to use in renderItem |
| renderItem | not required if children is used | func | Function that render each item of the grid |
| numColumns | 3 | number | Number of elements in a row |
| itemStyle | {} | ViewPropTypes | Style for the wrapper of item |
| Separator | |||
| showSeparator | false | bool | Show a separator between items |
| separatorBorderWidth | 0 | number | Set separator width |
| separatorBorderColor | 'white' | string | Set separator color |
| Animation | |||
| showAnimation | false | bool | Show an animation when load item |
| animationInitialBackgroundColor | 'white' | string | Set initial backgroundColor for animation |
| animationDuration | 500 | number | Duration of the animation |
Gustavo Gard
