react-native-x2-carousel
v1.0.1
Published
> react native carousel component
Readme
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
