React Native SGListView
SGListView is a memory minded implementation of the React Native's ListView.
Maintainers Wanted
I'm currently looking for maintainers to help maintain and improve this package for the React-Native community.
Installation
Install via yarn of npm
#yarn
yarn add react-native-sglistview
#npm
npm install react-native-sglistview --save
Usage
SGListView was designed to be a developer-friendly drop-in replacement for ListView. Simply import the package and change the ListView
references in the render methods to SGListView
. Nothing else. No fuss, no muss.
Import
Import SGListView
import SGListView from 'react-native-sglistview';
Rename
Change references from ListView
to SGListView
.
From:
<ListView ... />
To:
<SGListView ... />
Done
That's it. If you had a working list view and did the above two steps everything should work. If you're instead creating a ListView from scratch, then you'll need to do all the regular setup that the default ListView requires (i.e: Create and link up your datasource const dataSource = new ListView.DataSource(...)
).
Simple Example
import React from 'react';
import { ListView } from 'react-native';
import SGListView from 'react-native-sglistview';
const LIST_VIEW = 'listview';
class CardListView extends React.Component {
static renderRow(rowData, sectionID, rowID) {
return (
<View>
<Text>{rowData.title}</Text>
</View>
);
}
render() {
return (
<SGListView
ref={LIST_VIEW}
dataSource={this.getDataSource()}
renderRow={this.renderRow}
/>
);
}
getDataSource() {
const dataSource = new ListView.DataSource(
{ rowHasChanged: (r1, r2) => r1.uuid !== r2.uuid });
const deals = this.props.deals.length > 0;
return deals ? dataSource.cloneWithRows(this.props.deals) : dataSource;
}
}