【问题标题】:Error:Element type is invalid: expected a string (for built-in components)or a class/function(for composite components)but got:object错误:元素类型无效:期望字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象
【发布时间】:2020-05-09 02:03:51
【问题描述】:
import React from 'react'
const Newslist=(props)=>{
const Items = props.news.map((item)=>{
return (<h2>{item.title}</h2> )
});
return(<div> <Items/> </div>)
}
export default Newslist;
这段代码在 dom 中没有显示任何内容并显示错误
错误:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:对象
【问题讨论】:
标签:
node.js
json
reactjs
react-native
react-props
【解决方案1】:
您正在渲染Items,就好像它是一个 React 组件而不是一个 JSX 变量。正如错误所说,React 组件只能从字符串(在 HTML 元素的情况下)、类或函数中创建。当您使用<JSX/> 语法渲染某些内容时,它会作为参数传递给React.createElement。 map 调用返回的 JSX 元素数组不是可接受的参数类型之一,因此您会收到此错误。我认为这应该可行:
import React from 'react'
const Newslist=(props)=>{
const items = props.news.map((item)=>{
return (<h2>{item.title}</h2> )
});
return(<div> {items} </div>)
}
export default Newslist;