.measure returns undefined on Android unless collapsable=false or onLayout are specified
Personne n'a encore pris cette issue.
- Langage dominant
- C++
- Étoiles
- 127k
- Forks
- 25.3k
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 4
Description
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
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez avec un projet React Native Android minimal et reproduisez .measure sur une ref de View sans onLayout ni collapsable={false}. Comparez le résultat avec ces options activées, puis suivez le traitement par React Native sur Android des vues collapsable et des refs. C’est terminé lorsque .measure renvoie des résultats de mesure dans le cas signalé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- android, react-native
- Domaine
- mobile-dev
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100