callstack / callstack/react-native-pager-view

onPageSelected and onScroll gives wrong position when animation wasn't completed on previous page on iPhone 12

Aperta
#503 6 commenti 3 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
TypeScript
Stelle
3.4k
Fork
476
Merge medio
10g 21h
PR unite (30g)
2

Descrizione

## Environment
```
"react-native": "0.63.4",
"react": "16.14.0",
"react-native-pager-view": "^5.4.9"
```

iOS 15.2

## Description
onPageSelected and onScroll handlers giving wrong index on iPhone 12 simulator (as well as on real device too), but works on iPhone 11 (and older devices) correct. See video below (demonstrates apps on iPhone 11 and iPhone 12)

## Reproducible Demo

```

{children}

```

```
const onPageSelected = useCallback(
(e) => {
const pageIdx = e.nativeEvent.position;
console.log(pageIdx, 'PAGE IDX')
setActivePage(pageIdx);
onItemActive(pageIdx);
},
[onItemActive],
);
```

Video 1 (correct behaviour, iPhone 11 iOS 15.2, after animation is not finished onPageSelected provides correct page after gesture completed)
https://user-images.githubusercontent.com/9297785/149826584-b309417c-252e-4c55-b2c5-302dc1bb90f2.mp4

Video 2 (incorrect behaviour, iPhone 12 iOS 15.2, after animation is not finished onPageSelected provides previous page number after gesture completed)
https://user-images.githubusercontent.com/9297785/149826806-cbab3e2d-93f5-4ebf-a919-8e4b8d75f471.mp4

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con l’utilizzo di PagerView e degli handler onPageSelected/onScroll mostrati nell’issue, quindi riproduci lo swipe verticale interrotto su un iPhone 12 con iOS 15.2 e confrontalo con un iPhone 11. Il lavoro è completato quando l’evento segnala la pagina di destinazione completata invece della pagina precedente dopo un’animazione non terminata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
ios, react, react-native
Ambito
mobile
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.