首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React原生FlatList仅呈现10个项目

React原生FlatList仅呈现10个项目
EN

Stack Overflow用户
提问于 2019-01-22 14:14:59
回答 5查看 6.9K关注 0票数 6

我正在尝试显示一个包含86个项目的数据集的FlatList,但它只显示10个项目,并且不会加载更多项目。

我试着通过样式来调整容器的大小,但是没有效果。

代码语言:javascript
运行
复制
return (
  <View>
    <Text>{this.state.cards.length}</Text>
    <FlatList
      data={this.state.cards}
      renderItem={(theInfo) => <CardImage key={theInfo.key} info={theInfo}/>}
      keyExtractor={(item, index) => item.toString()}
    />
  </View>
);

我预计这将显示86个项目(this.state.cards.length显示86个),应用程序仅显示10个项目,不会加载更多项目。

编辑: rn版本0.57.8

EN

回答 5

Stack Overflow用户

发布于 2019-01-22 14:54:45

您应该设置以下属性

代码语言:javascript
运行
复制
initialNumToRender={50}

因为默认值是10

来源:https://facebook.github.io/react-native/docs/flatlist#initialnumtorender

票数 7
EN

Stack Overflow用户

发布于 2019-05-09 09:27:50

将视图更改为ScrollView

更新的代码:

代码语言:javascript
运行
复制
return (
  <ScrollView>
    <Text>{this.state.cards.length}</Text>
    <FlatList
      data={this.state.cards}
      renderItem={(theInfo) => <CardImage key={theInfo.key} info={theInfo}/>}
      keyExtractor={(item, index) => item.toString()}
    />
  </ScrollView>
);
票数 2
EN

Stack Overflow用户

发布于 2019-09-13 14:57:38

使用initialNumToRender不是一个合适的解决方案。它会影响处理,因为整个列表都是由flatList呈现的。如果你在项目中的任何地方使用动画,那么你可以在Animated.timing()中添加isInteraction: false参数,例如-

代码语言:javascript
运行
复制
Animated.timing(
    this.spinValue,
    {
      toValue: -1,
      duration: 4000,
      easing: Easing.linear,
      isInteraction: false
    }
  ).start( ()=> this.spin() )

有关更多信息,您可以在react-native项目的问题中查看this注释。

希望这能对你有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54302266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档