0

0

什么是 FlatList 组件以及如何在 React Native 中使用它?

PHPz

PHPz

发布时间:2023-09-04 13:25:01

|

2263人浏览过

|

来源于tutorialspoint

转载

flatlist 是一个可用于加载列表项的容器。它提供页眉和页脚支持、多列支持、垂直/水平滚动、延迟加载等。

以下是 FlatList 的一些重要功能 -

    支持滚动加载
  • 能够使用 ScrolltoIndex 支持来调整滚动
  • 支持页眉和页脚
  • 多列支持
  • 跨平台
  • 可配置的可见度回调

FlatList的基本结构如下 -

 item.id} />

FlatList 是通过 VirtualizedList 组件实现的,该组件负责显示适合移动屏幕当前视图端口的有限数量的项目。其余数据在用户滚动时呈现。 data 和 renderItem 等基本属性可用于创建 FlatList。

要使用 FlatList,您需要从 React-Native 导入它,如下所示 -

import { FlatList} from "react-native";

下面列出了 FlatList 的一些重要属性 -

Props 描述
数据 包含要显示的数据的数组。
renderItem renderItem({ item, index, seperators });

  • item - 它是以列表格式显示的数据字段中的项目。
  • index - 每个项目都有一个索引。
  • separators - 是一个有助于渲染道具的函数。可用的函数有 -

separators.highlight(),
separators.unhighlight(),
separators.updateProps().

ListEmptyComponent 当列表为空时将被调用的组件类、渲染函数或渲染元素。如果您想在列表为空时执行某些操作,此组件将会很有帮助。

ListFooterComponent 将在所有项目底部渲染的组件类、渲染函数或渲染元素。

ListFooterComponentStyle 页脚组件所需的样式可以在此处完成。

ListHeaderComponent 组件类、渲染函数或渲染元素,将在所有项目的顶部渲染。

ListHeaderComponentStyle 标题组件所需的样式可以在此处完成。
水平 strong> 如果设置为 true,此属性将水平渲染项目。
keyExtractor 提取给定索引的唯一键。该键用于缓存,也用于跟踪项目重新排序。(item: object, index: number) => string;

示例 1:垂直显示 FlatList 中的项目

该示例显示了 FlatList 的工作原理。要使用 FlatList,首先导入组件 -

抠抠图
抠抠图

免费在线AI智能批量抠图,AI图片编辑,智能印花提取。

下载
import { FlatList , Text, View, StyleSheet } from "react-native";

我需要 FlatList 以及其他组件,如文本、视图、样式表等。它们的导入方式如上所示。

导入完成后,我需要在 FlatList 中显示数据。数据存储在 this.state.data 中,如下所示 -

this.state = {
   data: [
      { name: "Javascript Frameworks", isTitle: true },
      { name: "Angular", isTitle: false },
      { name: "ReactJS", isTitle: false },
      { name: "VueJS", isTitle: false },
      { name: "ReactNative", isTitle: false },
      { name: "PHP Frameworks", isTitle: true },
      { name: "Laravel", isTitle: false },
      { name: "CodeIgniter", isTitle: false },
      { name: "CakePHP", isTitle: false },
      { name: "Symfony", isTitle: false }
   ],
   stickyHeaderIndices: []
};

实现 renderItem 的函数

下面的函数负责获取项目并在文本组件中显示相同的项目,如下所示 -

renderItem = ({ item }) => {
   return (
      
         {item.name}
      
   );
};

文本组件包装在视图组件内。 item.isTitle 是一个变量,检查它的 true/false,并相应地将其设置为粗体,并为其指定颜色。

要实现 FlatList

这里是具有 data 和 renderItem 属性的 FlatList 实现。


    item.name} />

this.state.data 被赋予 data 属性和 >this.renderItem 函数分配给 renderItem 属性。

根据您的数据,您可以判断关键属性这将是数据数组中唯一的一个,并且应该为 props keyExtractor 提供相同的值。如果没有给出,它将把数组索引视为key值。

因此我们将名称视为唯一的Key,并将其分配给keyExtractor。

keyExtractor={item => item.name}

这是实现 FlatList 的完整代码。

import React from "react";
import { FlatList , Text, View, StyleSheet, StatusBar } from "react-native";
export default class App extends React.Component {
   constructor() {
      super();
      this.state = {
         data: [
            { name: "Javascript Frameworks", isTitle: true },
            { name: "Angular", isTitle: false },
            { name: "ReactJS", isTitle: false },
            { name: "VueJS", isTitle: false },
            { name: "ReactNative", isTitle: false },
            { name: "PHP Frameworks", isTitle: true },
            { name: "Laravel", isTitle: false },
            { name: "CodeIgniter", isTitle: false },
            { name: "CakePHP", isTitle: false },
            { name: "Symfony", isTitle: false }
         ],
         stickyHeaderIndices: []
      };
   }
   renderItem = ({ item }) => {return ({item.name});};
render() {
   return ( item.name} stickyHeaderIndices={this.state.stickyHeaderIndices} />);
   }
}
const styles = StyleSheet.create({
   container: {
      flex: 1,
      marginTop: StatusBar.currentHeight || 0,
   },
   item: {
      margin: 10,
      padding: 20,
      marginVertical: 8,
      marginHorizontal: 16,
   }
});

输出

什么是 FlatList 组件以及如何在 React Native 中使用它?

示例 2:水平显示 FlatList 中的项目

要水平显示 FlatList 项目,您只需将 props Horizo​​ntal={true} 添加到您的 FlatList 组件即可。

import React from "react";
import { FlatList , Text, View, StyleSheet, StatusBar } from "react-native";
export default class App extends React.Component {
   constructor() {
      super();
      this.state = {
         data: [
            { name: "Javascript Frameworks", isTitle: true },
            { name: "Angular", isTitle: false },
            { name: "ReactJS", isTitle: false },
            { name: "VueJS", isTitle: false },
            { name: "ReactNative", isTitle: false },
            { name: "PHP Frameworks", isTitle: true },
            { name: "Laravel", isTitle: false },
            { name: "CodeIgniter", isTitle: false },
            { name: "CakePHP", isTitle: false },
            { name: "Symfony", isTitle: false }
         ],
         stickyHeaderIndices: []
      };
   }
   renderItem = ({ item }) => {return ({item.name});};
   render() {
      return ( item.name}    stickyHeaderIndices={this.state.stickyHeaderIndices} />);
   }
}
const styles = StyleSheet.create({
   container: {
      flex: 1,
      marginTop: 100,
   },
   item: {
      flexDirection: 'row',
      justifyContent: 'space-between',
      alignItems: 'center',
      padding: 30,
      margin: 2,
      borderColor: '#2a4944',
      borderWidth: 1,
      height:100,
      backgroundColor: '#d2f7f1'
   }
});

输出

什么是 FlatList 组件以及如何在 React Native 中使用它?

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

316

2023.08.02

li是什么元素
li是什么元素

li是HTML标记语言中的一个元素,用于创建列表。li代表列表项,它是ul或ol的子元素,li标签的作用是定义列表中的每个项目。本专题为大家li元素相关的各种文章、以及下载和课程。

415

2023.08.03

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

4

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

1

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

10

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

15

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

7

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号