J'utilise un flatList
pour restituer des éléments à partir d'un fichier json, je veux faire défiler jusqu'à un index spécifique lorsqu'un bouton est enfoncé, j'ai déclaré la fonction pour appuyer sur le bouton comme ci-dessous
goIndex = () => {
this.flatListRef.scrollToIndex({animated: true,index:5});
};
bien qu'il ne montre aucune erreur, la liste ne se déplace pas vers l'index spécifié.
réactif natif: 0,55,4
Attacher le code de FlatList.
<View>
<FlatList
getItemLayout={(data, index) => { return {length: 33, index, offset: 33 * index} }}
ItemSeparatorComponent={ () => <View style={ { width:"100%", height: .7, backgroundColor: 'rgba( 52,52,52,1)' } } /> }
data={this.state.outverse}
renderItem={({item,index}) =>
<View style={styles2.flatview}>
<Text style={styles2.name}>{++index} {item} </Text>
</View>
}
/>
</View>
Essayez d'ajouter une référence à votre composant FlatList
comme ci-dessous:
<View>
<FlatList
getItemLayout={(data, index) => { return {length: 33, index, offset: 33 * index} }}
ItemSeparatorComponent={ () => <View style={ { width:"100%", height: .7, backgroundColor: 'rgba( 52,52,52,1)' } } /> }
data={this.state.outverse}
ref={(ref) => { this.flatListRef = ref; }}
renderItem={({item,index}) =>
<View style={styles2.flatview}>
<Text style={styles2.name}>{++index} {item} </Text>
</View>
}
/>
</View>
Et dans la fonction goIndex
:
goIndex = () => {
this.refs.flatListRef.scrollToIndex({animated: true,index:5});
};
Essayez ce qui suit:
<FlatList
style={{
marginLeft: 50,
paddingTop: 0,
paddingRight: 0
}}
ref={ref => {
this.flatList_Ref = ref; // <------ ADD Ref for the Flatlist
}}
removeClippedSubviews={false}
enableEmptySections={false}
data={this.props.list}
keyExtractor={this._keyExtractor}
renderItem={this._renderItem1}
ItemSeparatorComponent={this._renderSeparator}
/>
Et puis appelez une fonction goIndex:
goIndex = () => {
this.flatList_Ref.scrollToIndex({animated: true,index:5});
};