导入后在 react-router v2.0.0 中未定义路由器

Router is undefined in react-router v2.0.0 after import

我正在尝试使用 react-router v2.0.0,当我使用 import { Router, Route, browserHistory } from 'react-router' 然后 console.log(Router) 时,我发现 Router is undefined。但是,当我记录 Route 时,它​​会输出正确的对象。

"use strict";

import React from 'react'
import { Router, Route, browserHistory } from 'react-router'
import Home from './pages/home.js'
import Entrance from './pages/Entrance.js'
import Courses from './pages/Courses.js'
import Quizzes from './pages/Quizzes.js'

console.log("conner", Router);
console.log("conner", Route);

module.exports = (
  <Router history={browserHistory}>
    <Route path="/" component={Home}>
      <Route path="entrance" component={Entrance} />
      <Route path="courses" component={Courses} />
      <Route path="quizzes" component={Quizzes} />
    </Route>
  </Router>
);

这一切都会导致此控制台错误:Uncaught Invariant Violation: ReactDOM.render(): Invalid component element. This may be caused by unintentionally loading two independent copies of React

我做错了什么?

您是否进入 node_modules 并进入 react-router 以检查其 package.json 中的版本?

如果你进入你的 web 项目所在的目录,你只需键入:npm ls | grep 反应 .

如果你看到 React 出现多次,那么你有依赖性问题,因为一些模块在旧版本之上安装了新版本的 React,破坏了一切。

您可以尝试 npm shrinkwrap、npm prune,修复您的 package.json。

关于shrinkwrap可以参考这篇post: http://javascript.tutorialhorizon.com/2015/03/21/what-is-npm-shrinkwrap-and-when-is-it-needed/