React Native FlatList не прокручивается по вертикали с помощью пользовательского renderItem и не может просматривать все элементы в списке - PullRequest
0 голосов
/ 25 октября 2019

Я создал экран, поместил изображение в качестве фона для всего экрана. Я хочу показать список массивов с FlatList. Я создал отдельный компонент функции в качестве cardItem для элемента FlatList и обернул его внутри элемента <View></View>. Я много искал и читал ответы на вопросы на многих сайтах, но мой FlatList не прокручивается по вертикали, и в итоге я не могу просмотреть некоторые элементы в ArrayList. Вот мой пример кода:

<View
      style={{
        width: "100%",
        height: "100%",
        alignItems: "stretch",
        flexDirection: "column",
        position: "absolute",
        justifyContent: "center"
      }}
    >
      <View
        style={{
          flex: 2,
          alignItems: "center",
          justifyContent: "center",
          alignSelf: "center"
        }}
      >
        <Text
          style={{ fontSize: 22, fontWeight: "bold", color: "#ffffff" }}
        >
          My Events List
        </Text>
      </View>
      <View
        style={{
          flex: 8,
          alignItems: "center",
          justifyContent: "center",
          paddingHorizontal: 15
        }}
      >
        <FlatList
          style={{ width: "100%", marginBottom: 15 }}
          data={eventsCreatedList}
          keyExtractor={item => {
            return item.id;
          }}
          renderItem={({ item }) => <EventsCreatedListItem item={item} />}
        />
      </View>
    </View>

Пожалуйста, скажите мне, где я иду не так. Заранее спасибо, ребята!

1 Ответ

0 голосов
/ 25 октября 2019

Я пробовал этот пример на https://snack.expo.io/?session_id=snack-session-wKlWVe6l2,, который работает с плоским списком и отображается в виде прокрутки. Пожалуйста, посмотрите.

import React from 'react';
import { SafeAreaView, View, FlatList, StyleSheet, Text } from 'react-native';
import Constants from 'expo-constants';

const DATA = [
  {
    id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
    title: 'First Item',
  },
  {
    id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
    title: 'Second Item',
  },
  {
    id: '58694a0f-3da1-471f-bd96-145571e29d72',
    title: 'Third Item',
  },
  {
    id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
    title: 'Fourth Item',
  },
  {
    id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
    title: 'Fifth Item',
  },
  {
    id: '58694a0f-3da1-471f-bd96-145571e29d72',
    title: 'Sixth Item',
  },
    {
    id: 'bd7acbea-c1b1-46c2-aed5-3ad53abb28ba',
    title: 'Seventh Item',
  },
  {
    id: '3ac68afc-c605-48d3-a4f8-fbd91aa97f63',
    title: 'Eighth Item',
  },
  {
    id: '58694a0f-3da1-471f-bd96-145571e29d72',
    title: 'Nineth Item',
  },
];

function Item({ title }) {
  return (
    <View style={styles.item}>
      <Text style={styles.title}>{title}</Text>
    </View>
  );
}

export default function App() {
  return (
    <SafeAreaView style={styles.container}>
      <FlatList
        data={DATA}
        renderItem={({ item }) => <Item title={item.title} />}
        keyExtractor={item => item.id}
      />
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    marginTop: Constants.statusBarHeight,
  },
  item: {
    backgroundColor: '#f9c2ff',
    padding: 20,
    marginVertical: 8,
    marginHorizontal: 16,
  },
  title: {
    fontSize: 32,
  },
});
...