2016-06-02 7 views
2

テキスト入力とキーボードの表示中にこのエラーが発生します。テキスト入力は私がモーダルに提示したアニメーション.viewの中にあります。RCTUIManager.mエラーフレームは<RCTShadowView>の子孫ではありません。

[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) 

答えて

1

複数のビューを同時にキーボードを聴いている時に問題

このエラーの主な原因は、私が見つけた、あります。これは、たとえば、ナビゲーションスタック内の複数のスクロールビューがテキスト入力にスクロールするためにキーボードイベントをリッスンしている場合に発生します。この問題は、ライブラリのユーザーが複数のスクロールビューを同じナビゲーションスタックにプッシュするときに、react-native-keyboard-aware-scroll-viewで数回発生しました。

これはRN内の既知の問題です。あなたはこのPRの周りの議論が参考に見つけるかもしれない:

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

現在のソリューション

私はあなたのユースケースが正確に何を知らないが、解決策は、あなたがドンことを確認することです」同時にキーボードを聴いている複数のビューがあります。これを行うには、適切な時刻にキーボードイベントリスナーを登録または登録解除するか(ナビゲーション・スタック内の複数のキーボード認識スクロール・ビューによって問題が発生している上記の場合)、キーボードイベントをサブスクライブするビューをすべて削除します新しいビューをプッシュする前にナビゲーションスタックから削除します。

上記のPRからわかるように、この問題を修正することはすぐにはるかに簡単になる可能性があります。しかし、その間に、手動でキーボード上のリスナーの数を確認できます。

+0

キーボードリスナーを手動でチェックする方法を詳しく説明できますか? – derevo

関連する問題