callstack / callstack/react-native-pager-view
Does not work within a ScrollView, bad performance when rendering multiple list components with real time data
- Dominant language
- TypeScript
- Stars
- 3.4k
- Forks
- 476
- Avg merge
- 10d 21h
- Merged PRs (30d)
- 2
Description
## Environment
react-native @ 0.79.1
react-native-pager-view @ 6.7.1
## Description
Since @MrRefactor requested a new issue to be created (https://github.com/callstack/react-native-pager-view/issues/784), here it is. Compared to version `7.0.0.rc0`, the current implementation performs much worse, especially in the case of a pager with multiple list components that have many rows and real-time data updates within. Also, the ScrollView bug persists, we are still not able to scroll a ScrollView when a Pager is rendered inside of it unless we perform the scroll gesture outside of the pager. I don't understand why support for the ScrollView based implementation was dropped as it performed perfectly well and IMO it should replace the current one. Honestly, based on the many threads and reports about this bug, I feel like this issue is being neglected.
## Reproducible Demo
```
import React from 'react';
import { ScrollView, StyleSheet, View, Text } from 'react-native';
import PagerView from 'react-native-pager-view';
const MyPager = () => {
return (
First page
Second page
);
};
const styles = StyleSheet.create({
pagerView: {
flex: 1,
},
});
export default MyPager;
```
Contributor guide
Research direction
Start with the reproducible MyPager example in the issue using React Native 0.79.1 and react-native-pager-view 6.7.1. Investigate the PagerView inside ScrollView and multiple-list real-time update cases; done means the parent ScrollView can scroll when the gesture starts over the pager and rendering performance is improved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react-native
- Domain
- mobile, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100