React 错误:元素类型无效:需要一个字符串(对于 built-in 组件)或一个 class/function(对于复合组件)但得到:未定义

React err: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined

我正在用 React 开发一个项目。(这是学习项目。我是 React 的新手)我正在使用 React-Bootstrap for UI。我现在正在设计导航栏。我想制作一个在 md 断点之前有效的 offcanvas,但我收到标题中提到的错误。我无法尝试任何事情,因为我不完全理解错误。我从 HomepageNavbar 组件收到错误。我也在那个组件里写了我的代码。

首先,我设计了经典的 Navbar 并且它起作用了。然后我添加了Offcanvas,我得到了错误。

正在运行:

<Navbar bg="transparent" variant="light">
         <Container className="justify-content-center justify-content-md-between">
             <Col md={4}>
                 <Navbar.Brand href="#home">
                     <img
                         alt=""
                         src={logo}
                         className="d-inline-block align-top"
                     />
                 </Navbar.Brand>
             </Col>
             <Col md={8} className="text-end text-xl-center">
                 <Nav
                     className="d-none d-md-block"
                     color="black"
                     style={{
                         fontSize: '.9rem',
                         fontWeight: 'bold',
                     }}
                 >
                     <Nav.Link className="d-inline" href="#home">Eğitim Paketlerimiz</Nav.Link>
                     <Nav.Link className="d-inline" href="#features">Örnek Videolar</Nav.Link>
                     <Nav.Link className="d-inline" href="#pricing">Yorumlar & Başarılarımız</Nav.Link>
                     <Nav.Link className="d-none d-lg-inline" href="#x">Yardım</Nav.Link>
                     <Nav.Link className="d-none d-lg-inline" href="#y">Biz Kimiz</Nav.Link>
                     <Nav.Link className="d-none d-xl-inline" href="#z">Bize Ulaşın</Nav.Link>
                 </Nav>
             </Col>
         </Container>
</Navbar>

它不再工作了,我得到了标题中提到的错误:

<Navbar bg="transparent" variant="light">
         <Container className="justify-content-center justify-content-md-between">
             <Col md={4}>
                 <Navbar.Brand href="#home">
                     <img
                         alt=""
                         src={logo}
                         className="d-inline-block align-top"
                     />
                 </Navbar.Brand>
             </Col>
             <Col md={8} className="text-end text-xl-center">
                 <Nav
                     className="d-none d-md-block"
                     color="black"
                     style={{
                         fontSize: '.9rem',
                         fontWeight: 'bold',
                     }}
                 >
                     <Nav.Link className="d-inline" href="#home">Eğitim Paketlerimiz</Nav.Link>
                     <Nav.Link className="d-inline" href="#features">Örnek Videolar</Nav.Link>
                     <Nav.Link className="d-inline" href="#pricing">Yorumlar & Başarılarımız</Nav.Link>
                     <Nav.Link className="d-none d-lg-inline" href="#x">Yardım</Nav.Link>
                     <Nav.Link className="d-none d-lg-inline" href="#y">Biz Kimiz</Nav.Link>
                     <Nav.Link className="d-none d-xl-inline" href="#z">Bize Ulaşın</Nav.Link>
                 </Nav>
             </Col>

             //The following are the places I added later. got it from this link: https://react-bootstrap.netlify.app/components/navbar/#navbar-offcanvas

             <Navbar.Toggle className="d-inline d-md-none" aria-controls="offcanvasNavbar" />
             <Navbar.Offcanvas
                 id="offcanvasNavbar"
                 aria-labelledby="offcanvasNavbarLabel"
                 placement="end"
             >
                 <Offcanvas.Header closeButton>
                     <Offcanvas.Title id="offcanvasNavbarLabel">Offcanvas</Offcanvas.Title>
                 </Offcanvas.Header>
                 <Offcanvas.Body>
                     <Nav className="justify-content-end flex-grow-1 pe-3">
                         <Nav.Link href="#action1">Home</Nav.Link>
                         <Nav.Link href="#action2">Link</Nav.Link>
                         <NavDropdown title="Dropdown" id="offcanvasNavbarDropdown">
                             <NavDropdown.Item href="#action3">Action</NavDropdown.Item>
                             <NavDropdown.Item href="#action4">Another action</NavDropdown.Item>
                             <NavDropdown.Divider />
                             <NavDropdown.Item href="#action5">
                                 Something else here
                             </NavDropdown.Item>
                         </NavDropdown>
                     </Nav>
                     <Form className="d-flex">
                         <FormControl
                             type="search"
                             placeholder="Search"
                             className="me-2"
                             aria-label="Search"
                         />
                         <Button variant="outline-success">Search</Button>
                     </Form>
                 </Offcanvas.Body>
             </Navbar.Offcanvas>
         </Container>
 </Navbar>

完全错误:

Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

Check the render method of HomepageNavbar.

我导入的东西:

import Nav from 'react-bootstrap/Nav'
import Container from 'react-bootstrap/Container'
import Col from 'react-bootstrap/Col'
import Navbar from 'react-bootstrap/Navbar'
import Offcanvas from 'react-bootstrap/Offcanvas'
import NavDropdown from 'react-bootstrap/NavDropdown'
import Button from 'react-bootstrap/Button'
import Form from 'react-bootstrap/Form'
import FormControl from 'react-bootstrap/FormControl'

检查 bootstrap 和 react-bootstrap 的版本,在我的例子中它已经过时 (2.0.0-beta.6")。

更新到最新版本后(目前 bootstrap: 5.1.3 和 react-bootstrap: 2.2.1)它工作正常。