2 votes

RCTUIManager.m Erreur le cadre n'est pas un descendant de <RCTShadowView> IOS

J'ai cette erreur lorsque je bascule la saisie de texte et lorsque le clavier est affiché. La saisie de texte se trouve dans une vue animée que je présente de manière modale.

[error][tid:com.facebook.react.ShadowQueue][RCTUIManager.m:1188] view <RCTShadowView: 0x1284daae0; viewName: RCTTextField; reactTag: 318; frame: {{0, 27.5}, {256, 18}}> (tag #318) is not a descendant of <RCTShadowView: 0x12827bd40; viewName: RCTView; reactTag: 256; frame: {{0, 0}, {320, 799}}> (tag #256)

1voto

Michael Helvey Points 2013

Le problème

La principale cause de cette erreur, je l'ai trouvée, est lorsque plusieurs vues écoutent le clavier en même temps. Cela peut se produire, par exemple, lorsque plusieurs vues de défilement à l'intérieur d'une pile de navigation écoutent les événements clavier afin de faire défiler une entrée de texte. Ce problème est apparu à plusieurs reprises avec react-native-keyboard-aware-scroll-view lorsque les utilisateurs de la bibliothèque placent plusieurs vues de défilement sur la même pile de navigation.

Il s'agit d'un problème connu au sein de RN. Vous trouverez peut-être utile la discussion autour de ce RP :

https://github.com/facebook/react-native/pull/7876

Solution actuelle

Je ne sais pas exactement quel est votre cas d'utilisation, mais la solution consiste à s'assurer que vous n'avez pas plusieurs vues qui écoutent le clavier en même temps. Pour ce faire, vous pouvez soit enregistrer et désenregistrer les récepteurs d'événements du clavier aux moments appropriés, soit (dans le cas que j'ai décrit ci-dessus, où le problème est causé par plusieurs vues de défilement conscientes du clavier dans une pile de navigation), supprimer toutes les vues qui souscrivent aux événements du clavier de la pile de navigation avant de pousser une nouvelle vue.

Comme vous pouvez le voir dans le RP ci-dessus, la résolution de ce problème pourrait devenir beaucoup plus facile bientôt. Mais en attendant, vous pouvez simplement vérifier manuellement le nombre d'écouteurs que vous avez sur le clavier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X