2016-05-31 9 views
0

これは、内容がたくさんある長いScrollViewがあり、ページの下部に別のコンポーネントがあると言われています。ユーザーが十分にスクロールダウンしたときに、下のコンポーネントを遅延レンダリングしようとしています。これを実装したライブラリはありますか?React Native:コンポーネントがビューポートにあるかどうかを確認する方法

(私はリストビューのonEndReachedを認識してんだけど、この場合のそれは役に立ち場合かなり確実ではない。)誰もが私の方向を導くことができれば

は感謝しています。

+0

あなたのレイジーレンダリングについては完全にはわかりませんが、特定のコンポーネントへのスクロールビューの実装は、選択したコンポーネントでスクロール可能な特性を持つことができ、最後または下部のコンポーネントはscrollviewタグで囲まずに静的です。 –

+0

たとえば、長い記事コンポーネントの下にコメントコンポーネントがあります。ユーザーが記事をスキップしてスクロールしない場合は、コメントを取得してレンダリングする必要はありません。ユーザーが一番下にスクロールしたときにコメントを取得するだけで効率的です。 –

+0

react-nativeのListViewコンポーネントを使用しない理由は何ですか? – Jickson

答えて

1

ScrollViewの最後に挿入しますか?

ScrollViewsは、デフォルトでは次の操作を行います。

removeClippedSubviewsブール

実験:trueの場合、(そのオーバーフロー値が隠されている)オフスクリーン時に、ネイティブのバッキングスーパービューから削除された子ビューのオフスクリーン。これにより、長いリストのスクロールのパフォーマンスが向上します。デフォルト値はtrueです。

https://facebook.github.io/react-native/docs/scrollview.html#removeclippedsubviews

+0

それは良いことです!私はこれをちょっと試してみましたが、コンポーネントはまだレンダリングされているようですが、 'ComponentDidMount'のリクエストはまだ呼び出されています。 –

1

私はこのためのシンプルなlibの作成:基本的にあなたがスクロール位置を通過し、ScrollViewe.nativeEvent.contentOffset)のonScrollイベントからのスクロール位置を取得することができ

https://github.com/chunghe/react-native-defer-renderer

を子コンポーネント子コンポーネントでは、上からの距離をonLayoutイベント(e.nativeEvent.layout.y)から取得できます。 これはほとんどすべての手口です。

関連する問題