callstack / callstack/react-native-pager-view
onPageSelected and onScroll gives wrong position when animation wasn't completed on previous page on iPhone 12
- Ngôn ngữ chính
- TypeScript
- Star
- 3.4k
- Fork
- 476
- Merge trung bình
- 10 ngày 21 giờ
- Pull request đã merge (30 ngày)
- 2
Mô tả
## 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
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với cách sử dụng PagerView và các handler onPageSelected/onScroll được nêu trong issue, sau đó tái hiện thao tác vuốt dọc bị gián đoạn trên iPhone 12 chạy iOS 15.2 và so sánh với iPhone 11. Được xem là hoàn tất khi sự kiện báo cáo trang đích đã hoàn tất thay vì trang trước đó sau một hoạt ảnh chưa hoàn thành.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- ios, react, react-native
- Lĩnh vực
- mobile
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100