从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')
);
答案 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>