reactjs与react-router不起作用

时间:2017-04-07 23:57:59

标签: javascript node.js reactjs react-router

我正在尝试使用nodejs运行一个简单的reactjs SPA,但我的路由器将无法正常工作。 我用create-react-app创建了一个新的应用程序并添加了npm install react-router。 我的package.json是

NoMethodError

我只是将react组件放在src / compoents /的不同文件夹中 我的index.js是

{
"name": "App",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^15.5.0",
"react-dom": "^15.5.0",
"react-router": "^4.0.0"
    },
"devDependencies": {
    "react-scripts": "0.9.5"
},
"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
}
}

这符合预期。应用程序出现并显示来自reactjs的hello world示例。 但是当我用路由器替换App时

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './components/App'
import { Router, Route, IndexRoute, hashHistory } from 'react-router'

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

应用程序中断。即使使用IndexRoute,该应用程序也无法正常工作。

将hasHistory更改为browserHistory或createMemoryHistory不会改变任何内容。

请你给我一个正确方向的提示,我缺少什么?

1 个答案:

答案 0 :(得分:0)

@Rob M.你是我的英雄! 谢谢! 这正是重点。

当我将 react-router 的版本更改为2.8时。正如你的建议,它运作得很好。

如果我理解正确的文档,建议使用 react-router-dom 代替更高级别的路由器

<BrowserRouter>
<HashRouter>
<MemoryRouter>
<NativeRouter>
<StaticRouter>

我说得对吗?