<link />标签生成错误:React.createElement:type无效

时间:2017-07-03 05:40:35

标签: reactjs react-router

从0.14切换到v15.5时,React Router的链接标记出错。这在前一版本中运行良好,它会在后者中引发以下错误。

  

警告:React.createElement:type无效 - 期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:undefined。您可能忘记从其定义的文件中导出组件。请检查Navbar的呈现方法。

navbar.js

import React, { Component } from 'react';
import Link from 'react-router-dom';

class Navbar extends Component
{
  render()
  {
     return (

         <nav className="nav">                                         
           <Link className="btn btn-primary btn-block" to="/about">
           About Us
           </Link>
         </nav>

     );
  }

  export default Navbar;

index.js

import React from 'react';
import { render } from 'react-dom';
import { BrowserRouter, Route, Switch } from 'react-router-dom';

import HomePage from './components/homepage/homepage';
import AboutPage from './components/aboutpage/aboutpage';

render
(
    <BrowserRouter>
        <Switch>
            <Route path="/about" component={AboutPage} />
            <Route path="/" component={HomePage} />
        </Switch>
    </BrowserRouter>,
    document.getElementById('app')
);

1 个答案:

答案 0 :(得分:8)

如果您没有在组件中成功导入或导出组件,通常会出现此错误。有关更多信息,您可以阅读反馈文档,了解何时在导入时使用花括号,何时不使用:)

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

<ul>
  <li><Link to="x">x</Link></li>
  <li><Link to="y">y</Link></li>
  <li><Link to="z">z</Link></li>
</ul>