ReactApp:错误:元素类型无效:预期是字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象

时间:2021-03-09 10:24:54

标签: javascript reactjs react-router

我收到此错误:

未捕获的错误:不变违规:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象 检查 PageWrapper 的渲染方法。

这是我的 App.js

import React from 'react';
import PageWrapper from "./components/PageWrapper";
import Home from "./components/Pages/Home.js";
import {BrowserRouter as Router,Route,Link} from 'react-router-dom';
function App() {
  return (
    <div>
    
    <Router>
      <PageWrapper>
          
            <Route path="/"
            component={Home}
            ></Route>
        
        </PageWrapper>
      </Router>
      </div>
  );
}

export default App;

这是我的 PageWrapper:

import React from 'react';
import Link from 'react';

class PageWrapper extends React.Component{

        render(){

            return(
               <div>
                <nav className="navbar navbar-expand-lg navbar-dark fixed-top" id="mainNav">
                    <div className="container">
                        <Link className="navbar-brand js-scroll-trigger" to="/"><img src="assets/img/navbar-logo.svg" alt="" /></Link>
                        <button className="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
                            Menu
                            <i className="fas fa-bars ml-1"></i>
                        </button>
                        <div className="collapse navbar-collapse" id="navbarResponsive">
                            <ul className="navbar-nav text-uppercase ml-auto">
                                <li className="nav-item"><Link className="nav-link js-scroll-trigger" to="/services">Services</Link></li>
                                <li className="nav-item"><Link className="nav-link js-scroll-trigger" to="/portfolio">Portfolio</Link></li>
                                <li className="nav-item"><Link className="nav-link js-scroll-trigger" to="/about">About</Link></li>
                                <li className="nav-item"><Link className="nav-link js-scroll-trigger" to="/team">Team</Link></li>
                                <li className="nav-item"><Link className="nav-link js-scroll-trigger" to="/contact">Contact</Link></li>
                            </ul>
                        </div>
                    </div>
                </nav>
                {this.props.children}
               </div> 
                );
        }
}


export default PageWrapper;

请帮忙!

1 个答案:

答案 0 :(得分:1)

你的问题是

import Link from 'react';

PageWrapper 组件中

它应该是一个命名导入,它应该来自 "react-router-dom" 而不是 "React"

所以改成

import {Link} from 'react-router-dom';

它会正常工作。