---
title: "FAQ"
description: "The react-native-reanimated-carousel FAQ"
canonical_url: "https://rn-carousel.dev/faq"
markdown_url: "https://rn-carousel.dev/faq.md"
version: "5"
---
# FAQ
---

## Optimizing

Use `renderWindowSize` to limit how many slides are mounted around the current item. Omit it to mount all slides. Choose a value from measurements on your target devices: a smaller window reduces React work, while a larger one gives complex neighboring animations more room.

## Used in `ScrollView/FlatList`

**[#143](https://github.com/dohooo/react-native-reanimated-carousel/issues/143) - Carousel suppresses ScrollView/FlatList scroll gesture handler:** When a horizontal carousel is nested in a vertical `ScrollView` or `FlatList`, configure the pan gesture so small horizontal movement does not capture the parent scroll. For example, use Gesture Handler's [`activeOffsetX`](https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/pan-gesture/):

```tsx copy
<Carousel
  {...}
  onConfigurePanGesture={(gesture) => {
    gesture.activeOffsetX([-10, 10]);
  }}
/>
```

## RTL

Horizontal RTL is detected from `I18nManager.isRTL`. Keep data in logical order: `next()`, `autoplayDirection="forward"`, progress, and signed offset retain the same meaning as LTR. A physical right swipe advances in RTL. Custom `itemAnimation` callbacks receive logical progress, so direction-sensitive `translateX` output must be mirrored by the application.

## Expo

Install v5 and its native peers with `expo install` so Expo selects compatible versions:

```shell copy
npx expo install react-native-reanimated-carousel react-native-reanimated react-native-worklets react-native-gesture-handler
```

v5 requires React Native 0.80+, Reanimated 4.1+, and React Native Worklets 0.5+. See the [v5 migration guide](https://rn-carousel.dev/migration-v5.md) for the validated Expo matrix and setup notes.

## Working principle
[How it works?](https://rn-carousel.dev/concepts.md)

## How to run the example app

Build the package, then install and run the Expo app from its current location:

```shell copy
yarn prepare
cd example/app
yarn install
yarn ios # or: yarn android / yarn web
```

Run the library checks from the repository root:

```shell copy
yarn test
yarn types
yarn lint
```
