Package Exports
- react-native-reanimated-carousel
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-native-reanimated-carousel) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
react-native-reanimated-carousel
Simple carousel component!
Infinitely scrolling very smooth!
Fully implemented using Reanimated 2!
The common RN infinite scroll component. It's common to get stuck on a fast slide. Wait for the next element to appear. This component will not have similar problems. That's why this library was created.
🎉🎉🎉
At present, it only meets the needs of my work. Welcome to raise PR/ISSUES.Try it with snack
Installation
Open a Terminal in the project root and run:
yarn add react-native-reanimated-carouselOr if you use npm:
npm install react-native-reanimated-carouselNow we need to install react-native-gesture-handler and react-native-reanimated(>=2.0.0).
EXPO
If use EXPO managed workflow please ensure that the version is greater than 41.Because the old version not support Reanimated(v2)
Usage
import Carousel from "react-native-reanimated-carousel";
// ...
<Carousel<{ color: string }>
width={width}
data={[{ color: "red" }, { color: "purple" }, { color: "yellow" }]}
renderItem={({ color }) => {
return (
<View
style={{
backgroundColor: color,
justifyContent: "center",
flex: 1,
}}
/>
);
}}
/>;Props
| name | required | default | types | description |
|---|---|---|---|---|
| data | ✅ | T[] | Carousel items data set | |
| width | ✅ | number | Specified carousel container width | |
| renderItem | ✅ | (data: T, index: number) => React.ReactNode | Render carousel item | |
| autoPlay | ❌ | false | boolean | Auto play |
| autoPlayReverse | ❌ | false | boolean | Auto play reverse playback |
| autoPlayInterval | ❌ | 1000 | autoPlayInterval | Auto play playback interval |
| mode | ❌ | defalut | 'default'|'parallax' | Carousel Animated transitions |
| loop | ❌ | true | boolean | Carousel loop playback |
| parallaxScrollingOffset | ❌ | 100 | number | When use 'default' Layout props,this prop can be control prev/next item offset |
| parallaxScrollingScale | ❌ | 0.8 | number | When use 'default' Layout props,this prop can be control prev/next item scale |
| style | ❌ | {} | ViewStyle | Carousel container style |
| height | ❌ | '100%' | undefined | string | number | Specified carousel container height |
| timingConfig | ❌ | {duration: 250} | Animated.WithTimingConfig | Timing config of translation animated |
| onSnapToItem | ❌ | (index: number) => void | Callback fired when navigating to an item | |
| onScrollBegin | ❌ | () => void | Callback fired when scroll begin | |
| onScrollEnd | ❌ | (previous: number, current: number) => void | Callback fired when scroll end |
Ref
| name | types | description |
|---|---|---|
| prev | ()=>void | Play the last one |
| loop | ()=>void | Play the next one |
| goToIndex | (index: number, animated?: boolean) => void | Go to index |
| getCurrentIndex | ()=>number | Get current item index |
Example
yarn example -- ios
yarn example -- androidContributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT