渲染错误,元素类型无效:需要一个字符串(对于内置组件)
渲染错误,元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:未定义。您可能忘记导出组件。
在我使用了 React-native-elements 中的 List 和 ListItem 之后,我得到了这个错误。
import React ,{ useState,useEffect } from 'react';
import { Text, View,SafeAreaView,StyleSheet,TextInput,
Button,Alert,Image,FlatList} from 'react-native';
import {List,ListItem} from 'react-native-elements';
import Api from '../../../server/routes/userApi'
const Users = () => {
const [usersData, setUsersData] = useState([])
let api=new Api()
const fetchData=async()=>{
const users=await api.getUsers()
console.log("users ",users)
setUsersData(users)
}
useEffect(()=>{
fetchData()
},[])
return (
<List>
<FlatList
data={usersData}
renderItem={({item})=>(
<ListItem
roundAvatar
title={`${item.firstName}`}
/>
)}
keyExtractor={item => item.id}
/>
</List>
)
}
export default Users;
render error, element type was invalid: expected a string (for built-in components) or a class/function (for composite components) but got :undefined. you likely forget to export your component.
after i used List and ListItem from react-native-elements i got this error.
import React ,{ useState,useEffect } from 'react';
import { Text, View,SafeAreaView,StyleSheet,TextInput,
Button,Alert,Image,FlatList} from 'react-native';
import {List,ListItem} from 'react-native-elements';
import Api from '../../../server/routes/userApi'
const Users = () => {
const [usersData, setUsersData] = useState([])
let api=new Api()
const fetchData=async()=>{
const users=await api.getUsers()
console.log("users ",users)
setUsersData(users)
}
useEffect(()=>{
fetchData()
},[])
return (
<List>
<FlatList
data={usersData}
renderItem={({item})=>(
<ListItem
roundAvatar
title={`${item.firstName}`}
/>
)}
keyExtractor={item => item.id}
/>
</List>
)
}
export default Users;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在使用 react-native-elements 自版本以来不再提供
List
组件1.0。官方文档中提到了这一点。
因此,导入语句
不起作用,因为
List
不存在。只需将
List
组件替换为View
,根据需要设置必要的边距或其他样式,然后删除List
的导入即可。由于您已经在使用FlatList
和ListItem
这应该可以工作。You are using react-native-elements which does not provide a
List
component anymore since version 1.0.This is mentioned in the official documentation.
Hence, the import statement
does not work, since
List
does not exist.Just replace your
List
component with aView
, set the necessary margins or other styles as desired and remove the import ofList
. Since you are already using aFlatList
and aListItem
this should work.