反应错误:元素类型无效:需要一个字符串

Posted

技术标签:

【中文标题】反应错误:元素类型无效:需要一个字符串【英文标题】:React error: Element type is invalid: expected a string 【发布时间】:2021-12-28 17:01:19 【问题描述】:

我正在使用 React 制作日历,但是当我尝试运行它时会出现此问题:

yarn start "错误:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:对象。您可能忘记从定义的文件中导出组件,或者你可能混淆了默认和命名的导入。

检查Calendar的渲染方法。" 我的 Calendar.jsx 代码:

import React,   useRef,useState  from "react";
import FullCalendar from '@fullcalendar/react' 
import dayGridPlugin from '@fullcalendar/daygrid'
import AddEventModal from "./AddEventModal";


function Calendar ()  
  const[modalOpen, setModalOpen] = useState(false);
  const calendarRef =useRef(null);
  const onEventAdded = event =>
    let calendarApi = calendarRef.current.getApi();
    calendarApi.addEvent(event);
    
  
  return(
    <section>
      <button>Add Event to the Calendar</button>
      <FullCalendar
        ref=calendarRef
        plugins=[ dayGridPlugin ]
        initialView="dayGridMonth"
        />
      <AddEventModal isOpen=modalOpen
        onClose=() => setModalOpen(false)
        onEventAdded=event => onEventAdded(event)/>
    </section>
  )


export default Calendar

【问题讨论】:

能否将调用父组件与AddEventModal 一起添加? 你也可以发AddEventModal吗? 【参考方案1】:

遇到了同样的问题(但没有使用模式)。原来组件的导入 URL 是错误的。那就是当文件的 URL 明显错误时 React v17 给你的错误消息。可能要检查您的导入吗?

【讨论】:

以上是关于反应错误:元素类型无效:需要一个字符串的主要内容,如果未能解决你的问题,请参考以下文章

错误:元素类型无效:在尝试更新状态时,应在反应中出现字符串

反应错误 - 未捕获的不变违规:元素类型无效

错误:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)React JS

元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:未定义的 React

元素类型无效:应为字符串(用于内置组件)或类/函数(用于复合组件)但得到:对象。反应原生

错误:元素类型无效:需要一个字符串(对于内置组件)reactjs