You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native初学遇错:使用Flatlist组件时出现组件类型错误

解决React Native FlatList报错问题

嘿,我一眼就揪出几个导致报错的问题,咱们逐个修复:

  • 组件名称拼写错误:React Native官方的列表组件是FlatList(注意最后一个字母L是大写的),你写成了小写的Flatlist,这会让React找不到这个内置组件,直接抛出“got undefined”的错误——这是最核心的问题!

  • data属性传值错误:你的state.person本身就是一个数组,不需要再用方括号包裹。你当前的写法data={[this.state.person]}会把整个person数组当成单个元素传入,导致renderItem里的item是整个数组而非单个对象。正确写法是直接传data={this.state.person}。

  • renderItem缺少可渲染元素:renderItem必须返回一个有效的React元素,你现在只加了console.log(item),没有返回任何可显示的内容,这也会影响FlatList的正常渲染。可以返回一个<Text>组件来展示每个名字。

修正后的完整代码

import React, { Component } from 'react';
import { FlatList, Text, View } from 'react-native';

export default class List extends Component {
  state = {
    person: [
      { name: 'abhjeet' },
      { name: 'shubham' },
      { name: 'kamal' },
      { name: 'devesh' },
      { name: 'ashu' }
    ]
  }

  render() {
    return (
      <View>
        <FlatList 
          data={this.state.person} 
          renderItem={({ item }) => {
            console.log(item);
            return <Text>{item.name}</Text>;
          }} 
        />
      </View>
    );
  }
}

另外补充下:你用Text组件时没问题,是因为Text的拼写完全正确,React能正确识别这个内置组件;而Flatlist拼写错误导致React找不到对应的组件,所以才会抛出那个类型错误。

内容的提问来源于stack exchange,提问作者Abhijeet Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 12:12:33