Ich habe eine Liste von Daten, die ich in einer FlatList (dh ScrollView) platzieren möchte und wann immer ich scrolle, um mehr von der Liste zu sehen, springt die ScrollView einfach zurück zum ganz oben in der Liste, damit ich nie den unteren Teil der Liste sehen kann.Reactive Native ScrollView/FlatList nicht scrollen
Ich benutze Expo und die seltsame Sache ist, dass, wenn ich nur ein neues Projekt erstellen oder Code in Snack kopieren/einfügen dann das Scrollen funktioniert gut. Nur in meinem aktuellen Projekt kann ich die Liste nicht zum Scrollen bringen. Ich bin sogar in die Datei main.js
gegangen und habe dort meinen Beispielcode eingefügt und das Problem besteht immer noch.
Mein Beispiel Code befindet sich hier: https://snack.expo.io/ryDPtO5-b Ich habe diesen genauen Code in mein Projekt eingefügt und es funktioniert nicht wie erwartet.
Versionen: RN 0.44/ Expo SDK 17.0.0/ Reagieren: 16.0.0-alpha.6
Mein konkreter Anwendungsfall für mein Projekt beinhaltet im unteren Drittel der eine FlatList Komponente platzieren Bildschirm, um eine Liste von Jobs anzuzeigen. Dies ist, wo ich den Fehler entdeckte und als ich anfing, das Problem zu debuggen und zu versuchen. In meinem Projekt habe ich einen Elternteil View
mit einem Stil von {flex: 1
mit einem Kind von List
, den die FlatList
enthält ... List
kommt aus react-native-elements
EDIT
Hier ist der Code, den ich tatsächlich versucht ist zu verwenden :
<View style={styles.container}>
<View style={containerStyles.headerContainerStyle}>
<Text style={[textStyles.h2, { textAlign: 'center' }]}>
Territory: {this.props.currentTerritory}
</Text>
</View>
<View style={styles.mapContainer}>
<MapView
provider="google"
onRegionChangeComplete={this.onRegionChangeComplete}
region={this.state.region}
style={{ flex: 1 }}
>
{this.renderMapMarkers()}
</MapView>
</View>
<Badge containerStyle={styles.badgeStyle}>
<Text>Orders Remaining: {this.props.jobsList.length}</Text>
</Badge>
<List containerStyle={{ flex: 1 }}>
<FlatList
data={this.props.jobsList}
keyExtractor={item => item.id}
renderItem={this.renderJobs}
removeClippedSubviews={false}
/>
</List>
</View>
Und alle meine Arten
const styles = StyleSheet.create({
container: {
flex: 1,
},
mapContainer: {
height: 300,
},
badgeStyle: {
backgroundColor: 'green',
alignSelf: 'center',
marginTop: 15,
width: 300,
height: 35,
},
});
und schließlich meine renderItem Funktion:
renderJobs = ({ item }) => {
const { fullAddress, pickupTime } = item;
return (
<ListItem
containerStyle={item.status === 'active' && { backgroundColor: '#7fbf7f' }}
title={fullAddress}
titleStyle={{ fontSize: 14 }}
subtitle={pickupTime}
subtitleStyle={{ fontSize: 12, color: 'black' }}
onPress={() => this.props.navigation.navigate('jobActions', { job: item })}
/>
);
}
Geben Sie keine externen Links zu Ihrem Code an. Erstelle stattdessen ein MCVE: https://stackoverflow.com/help/mcve – CinCout