我正在学习反应本地,并且在this documentation上找到了以下术语。
如果您有一长串可以容纳在屏幕上的更多项目,则应改用FlatList。
这意味着FlatList组件用于适合屏幕显示且不可滚动的平面列表。但是在FlatList documentation上说:
FlatList组件显示一个滚动列表,该列表包含正在更改但结构相似的数据。
请,有人能告诉我什么意思吗?因为两个文档都相反。
答案 0 :(得分:0)
从第一个文档链接开始,您对句子的理解有所误解。它实际上说:
如果您的屏幕上一长串的项目超出的大小,则应该使用
FlatList
。
请注意,它说的是“ 大于”,而不是“ 那个” 。短语可以容纳在屏幕上表示您的项目不能容纳在当前显示尺寸内,因此建议使用FlatList
。
ScrollView
和FlatList
都是可滚动的组件。一些区别是:
ScrollView
更为通用。您可以在ScrollView
内嵌套任何类型的组件,它们不会抱怨。另一方面,FlatList
接受结构相似的数据。ScrollView
中包含的FlatList
将仅呈现其在屏幕范围内的子项,并在用户滚动到它们时呈现其余子项。更新:
当我说“显示”时,是指手机的实际显示,而“容器”是指构成应用程序当前页面的一组组件/项目,例如文本输入的组合,按钮,视图等
请考虑以下登录表单(source):
此容器屏幕上的每个项目(组件)在手机的显示屏上都是可见的,因为开始时没有很多组件。您可以在不使用滚动支持的情况下逃脱。
但是,很多时候容器中有很多组件,但是一次只能容纳有限数量的显示器。其余的组件可能会在手机的显示屏上“溢出”。在这种情况下,您必须使用可滚动的组件来正确显示所有组件,以便您的应用程序用户可以到达超出显示范围的组件。例如,包含许多邮件的收件箱,或包含许多项目的待办事项列表:
在上图中,手机的显示屏只能显示收件箱中的前6个项目。其余的呢?当然,您必须滚动才能看到它们!您可以使用ScrollView
或FlatList
来启用此处滚动的支持。
现在,如果在这种情况下使用ScrollView
,则在该特定应用页面加载(即同时)时,将加载容器中的所有所有子项(收件箱项)。考虑一个包含3000个项目的收件箱。同时加载所有这些将永远是永远的!用户将等待很长时间才能加载。因此,简单的ScrollView
在这里不起作用。
幸运的是,我们有FlatList
。
当您使用FlatList
显示可滚动组件时,一次只能渲染有限数量的项目以适合当前显示(例如,上例中为6个项目)。剩下的2994个项目呢? FlatList
将在用户不断向下滚动时动态呈现它们。