新しいFlatList
componentを使用しており、componentDidMount
などのライフサイクルメソッド内でScrollToIndex
(またはScrollToEnd
)を使用したいと考えています。FlatListコンポーネントのライフサイクルメソッドScrollToIndex ScrollToEndなど
私は100個のアイテムを並べていますが、最初のアイテムではなく最初からレンダリングを開始したいと考えています。 50番目の項目で言いましょう。 FlatList
は一度に一つのアイテムを表示している場合は、ここで説明するように、いくつかのハックで、必要に応じて、それが働いています:https://github.com/facebook/react-native/issues/13202
componentDidMount() {
let wait = new Promise((resolve) => setTimeout(resolve, 500)); // Smaller number should work
wait.then(() => {
this.refs.flatlist.scrollToIndex({index: 4, animated: true});
});
}
このスニペットはcomponentDidMount
の呼び出しのscrollToIndex
実行後数ミリ秒になります。
しかし、私がFlatList
を使用するとき、ビューが3x3グリッドを含む場合、私は単にそれを実行させることができません。 scrollToIndex
を使用してインデックスが指定された小道具initialNumToRender
の外にある場合、私は理解できないエラーscrollIndex out of range $ID
しか得られません。提供されるデータ配列は、例えば100項目すべてを有する。私がscrollToEnd
の私達を作るとき、それは終わりでなく間のどこかで停止します。私にとっては何らかのバグのように見えますが、最初のレンダリング後に$ Xアイテムにスクロールする方法は他には分かりません。手伝って頂けますか?
私はあらゆる種類のヘルプやコメントに感謝します。
iOSとAndroid(エミュレータとデバイス)でReact-Native v0.43.0とv0.44.0を試しましたが、それは常に同じです。 VirtualizedList.jsを見ると