反应本机Flatlist官方文档未呈现

时间:2019-11-05 23:47:51

标签: react-native

我以React官方文档中的示例为例进行了应用,只是更改了一些根本不重要的内容,并添加了<Text>,以便确保该组件可以在我的父组件中正确导出。

显示带有List problem的部分,但列表本身不显示。我在Scollview之前使用映射DATA测试了Flatlist,但工作正常,但Flatlist不起作用。

import React from "react";
import { View, Text,  SafeAreaView, FlatList, StyleSheet } from "react-native";

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

const ListOfTrips = () => {
  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',
    },
  ];

  return (
    <View>
      <Text> List problem </Text>
     <SafeAreaView style={styles.container}>
      <FlatList
        data={DATA}
        renderItem={({ item }) => <Item title={item.title} />}
        keyExtractor={item => item.id}
      />
    </SafeAreaView>
    </View>
  );
};

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

export default ListOfTrips;

1 个答案:

答案 0 :(得分:1)

此问题是由于 SafeAreaView 放置不正确。将您的退货重构为

 return (
      <SafeAreaView>
          <Text> List problem </Text>
          <FlatList
              data={DATA}
              renderItem={({ item }) => <Item title={item.title} />}
              keyExtractor={item => item.id}
          />
      </SafeAreaView>
  );

SafeAreaView 应该用作屏幕的根标签,以避免在缺口设备中视图未对准。 请参考React-Native SafeAreaView