1.0.1 • Published 6 years ago
react-native-x2-carousel v1.0.1
react-native-x2-carousel
a cross-platform (
iOS,Android,Web) react native carousel component
Install
$ npm install react-native-x2-carousel --saveUsage
import React from 'react';
import { StyleSheet, View, Text } from 'react-native';
import Carousel, { Pagination } from 'react-native-x2-carousel';
const DATA = [
{ text: '#1' },
{ text: '#2' },
{ text: '#3' },
];
const App = () => {
const renderItem = data => (
<View key={data.text} style={styles.item}>
<Text>{data.text}</Text>
</View>
);
return (
<View style={styles.container}>
<Carousel
pagination={Pagination}
renderItem={renderItem}
data={DATA}
/>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
item: {
width: 200,
height: 200,
alignItems: 'center',
justifyContent: 'center',
backgroundColor: '#dbf3fa',
},
});
export default App;Props
Basic Props
| Prop | Type | Default | Description |
|---|---|---|---|
data | any[] | [] | the item data |
renderItem | (data: any[], index: number) => void | () => {} | function for rendering each item |
loop | boolean | false | determine whether the loop mode is enabled or not |
autoplay | boolean | false | determine whether the auto play mode is enabled or not |
autoplayInterval | number | 2000 | delay between item transitions in milliseconds |
pagination | () => JSX.Element | { render: () => JSX.Element } | null | the pagination component |
Callback Props
| Prop | Callback Params | Description |
|---|---|---|
onPage | { prev: number, current: number} | called when page number changes |
Pagination
Default
2 pagination components are provided as default
import Carousel, { Pagination, // dark-colored pagination component PaginationLight // light-colored pagination component } from 'react-native-x2-carousel'; // ... const App = () => ( <Carousel // ... pagination={PaginationLight} /> );
Customize
Your customized pagination component will have access to the following props
| Prop | Type | Default | Description |
|---|---|---|---|
total | number | 0 | the total number of pages |
currentPage | number | 1 | the current page number |
Dev
The
demofolder contains a standalone Expo project, which can be used for dev purpose.react-native - 0.61 react-native-web - 0.11.7 react - 16.9
Start Expo
$ npm install $ npm startRun on
simulator- type the following command in the
Terminalafter the project is booted up wforwebdevelopementaforandroidsimulatoriforiOSsimulator
- type the following command in the
Run on
devicerequire the installation of corresponding
iOS clientorandroid clienton the devicescan the QR code from
Terminalusing the device
More on
Expo Guide
Related
- scaffolded by react-native-component-cli
License
MIT