.measure returns undefined on Android unless collapsable=false or onLayout are specified
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C++
- Star
- 127k
- Fork
- 25.3k
- Merge trung bình
- 1 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 4
Mô tả
Description
If you call .measure on a ref to a View on Android but you don't also have onLayout or collapsable={false} specified then .measure will call its success callback with undefined.
This issue got closed but it was never fixed https://github.com/facebook/react-native/issues/3282
Seems it got reported again and was also closed without a fix https://github.com/facebook/react-native/issues/19103
The issue here is identical, a 5 year old bug! I suspect it's due to android removing "unnecessary" views when it shouldn't. If there's a ref the view should essentially have collapsable={false} automatically.
React Native version:
System:
OS: Windows 10 10.0.20190
CPU: (16) x64 AMD Ryzen 7 3700X 8-Core Processor
Memory: 33.48 GB / 63.93 GB
Binaries:
Node: 10.18.1 - C:\dev\tools\nodejs\node.EXE
Yarn: 1.22.4 - C:\dev\tools\nodejs\yarn.CMD
npm: 6.14.7 - C:\dev\TaskHero\node_modules\.bin\npm.CMD
Watchman: 4.9.4 - C:\dev\tools\watchman\watchman.EXE
SDKs:
Android SDK:
API Levels: 28, 29
Build Tools: 28.0.3, 29.0.3, 30.0.1
System Images: android-24 | Google Play Intel x86 Atom, android-25 | Google APIs ARM EABI v7a, android-25 | Google APIs Intel x86 Atom_64, android-28 | Google Play Intel x86 Atom_64, android-29 | Google Play Intel x86 Atom_64, android-30 | Google APIs Intel x86 Atom_64, androi
d-R | Google Play Intel x86 Atom_64
Android NDK: 21.0.6113669
IDEs:
Android Studio: Not Found
Languages:
Java: 12.0.2
Python: 3.8.4
npmPackages:
@react-native-community/cli: ^4.10.1 => 4.10.1
react: 16.13.1 => 16.13.1
react-native: 0.63.2 => 0.63.2
npmGlobalPackages:
*react-native*: Not Found
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.
- Add a ref to a view on Android
- Call .measure on that ref, values returned are undefined
Expected Results
It should return the measurement results
Snack, code example, screenshot, or link to a repository:
Not needed, can be reproduced immediately on any react native android project of any version
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với một dự án React Native Android tối giản và tái hiện .measure trên một ref của View mà không có onLayout hoặc collapsable={false}. So sánh kết quả với các tùy chọn đó được bật, sau đó theo dõi cách React Native xử lý các view collapsable và ref trên Android. Hoàn tất khi .measure trả về kết quả đo trong trường hợp được báo cáo.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- android, react-native
- Lĩnh vực
- mobile-dev
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100