1.0.1 • Published 4 years ago

react-native-x-carousel v1.0.1

Weekly downloads
61
License
MIT
Repository
github
Last release
4 years ago

react-native-x-carousel

a cross-platform (iOS, Android, Web) react native carousel component

npm npm.io GitHub issues NPM npm.io npm.io

Preview

react-native-x-carousel is a React Native component for building a cross-platform carousel.

Highlighted Features:

  1. Cross Platform - uniform behaviors among iOS, Android and Web
  2. Loop Cycle - support head-to-tail / tail-to-head loop cycle
  3. Auto Play - auto play with smooth transition
  4. Fully Customizable - customizable carousel content & pagination

Install

$ npm install react-native-x-carousel --save

Usage

a minimally-configured carousel

import React from 'react';
import { StyleSheet, View, Text } from 'react-native';
import Carousel, { Pagination } from '../src';

const DATA = { text: '#1' }, { text: '#2' }, { text: '#3' }, ;

const App = () => { const renderItem = data => ( {data.text} ); return ( ); };

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` | {<br>&nbsp;&nbsp;&nbsp;&nbsp;prev: number,<br>&nbsp;&nbsp;&nbsp;&nbsp;current: number<br>} | called when page number changes |

## Pagination
#### Default
> 2 pagination components are provided as default
```js
import Carousel, {
  Pagination, // dark-colored pagination component
  PaginationLight // light-colored pagination component
} from 'react-native-x-carousel';
// ...
const App = () => (
  <Carousel
    // ...
    pagination={PaginationLight}
  />
);

Customize

Your customized pagination component will have access to the following props

PropTypeDefaultDescription
totalnumber0the total number of pages
currentPagenumber1the current page number

Dev

The demo folder 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

  1. Start Expo

    $ npm install
    
    $ npm start
  2. Run on simulator

    • type the following command in the Terminal after the project is booted up
    • w for web developement
    • a for android simulator
    • i for iOS simulator
  3. Run on device

    • require the installation of corresponding iOS client or android client on the device

    • scan the QR code from Terminal using the device

  4. More on Expo Guide

Related

License

MIT