【问题标题】:Error: Element type is invalid when using react-router-bootstrap LinkContainer错误:使用 react-router-bootstrap LinkContainer 时元素类型无效
【发布时间】:2021-11-09 17:44:51
【问题描述】:

使用 react-router-bootstrap 中的 LinkContainer 给我这个错误:

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

查看Header的渲染方法。

       import React, { Component } from 'react'
        import { Navbar, Nav, Container} from 'react-bootstrap'
        import {LinkContainer}  from 'react-router-bootstrap'
    
    
    class Header extends Component {
     
     render(){
      return (
      <header>
        <Navbar bg="dark" expand="lg" variant="dark" collapseOnSelect>
          <Container>
            <LinkContainer to="/">
            <Navbar.Brand >MyShop</Navbar.Brand>
            </LinkContainer>
            <Navbar.Toggle aria-controls="basic-navbar-nav" />
            <Navbar.Collapse id="basic-navbar-nav">     
              <Nav className="mr-auto">
                <LinkContainer to="/cart">
                  <Nav.Link ><i className="fas fa-shopping-cart"></i>Cart</Nav.Link>
                </LinkContainer>
                <LinkContainer to="/login">
                  <Nav.Link ><i className="fas fa-user"></i>Login</Nav.Link>    
                [enter image description here][1]</LinkContainer>
              </Nav>
            </Navbar.Collapse>
          </Container>
        </Navbar>
      </header>
     )
     }
    }
    
    export default Header

这里是 App.js

import { Container } from 'react-bootstrap'
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'

import Header from "./components/Header"
import Footer from "./components/Footer"

import HomeScreen from './screens/HomeScreen'
import ProductScreen from './screens/ProductScreen'

function App() {
  return (
    <Router >
      <Header/>
        <main className="py-3">
          <Container>
            <Routes>
              <Route path='/' element={<HomeScreen/>} exact/>
              <Route path="/product/:id" element={<ProductScreen/>}/>
            </Routes>
          </Container>
        </main>
      <Footer/>
    </Router>
  );
}

export default App;

index.js

import ReactDOM from 'react-dom';
import './index.css';
import './bootstrap.min.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);


我在此处添加了错误消息屏幕截图

Error message screeshot

谢谢!

【问题讨论】:

  • 请分享 index.js 代码
  • 我在帖子中添加了代码。我不知道如何在评论中添加它。谢谢!

标签: reactjs react-router react-router-bootstrap


【解决方案1】:

请在你的 index.js 代码的顶部添加这行代码:

import React from "react";

【讨论】:

  • 成功了!谢谢!
  • 很高兴,继续工作并探索世界:) 并将答案标记为正确答案,以便我也可以帮助其他人,谢谢!
猜你喜欢
  • 2020-05-20
  • 2018-05-18
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 2021-07-21
  • 2021-01-08
  • 1970-01-01
相关资源
最近更新 更多