【发布时间】:2017-05-09 01:42:48
【问题描述】:
我开始使用 React,但在理解如何使 react-router 工作时遇到了问题。
在我的项目中,我创建了一个导出简单渲染函数的App.js 文件:
export default class App extends React.Component {
render () {
return <Router>
<div>
<Link to="/connected">Login</Link>
<Link to="/">Home</Link>
<Route path="/connected" component={Connected}/>
<Route exact path="/" component={LoginPage}/>
</div>
</Router>
}
}
当然,在文件的顶部,我导入了两个组件:Connected 和 LoginPage 以及一堆其他组件:
import React from 'react'
import {
HashRouter as Router,
Route,
Link
} from 'react-router-dom'
import LoginPage from './pages/LoginPage'
import Connected from './pages/Connected'
我的组件很简单:
import React from 'react'
export default class LoginPage extends React.Component {
render () {
return <div>
Hello World 1
</div>
}
}
第二个组件几乎相同。
我的问题是:
当我单击<Link to="/">Home</Link> 时,页面没有更新为LoginPage 组件。但是如果我刷新页面,就会出现LoginPage 组件。如果我点击<Link to="/connected">Login</Link>,路由器不会更新页面,我还需要完全刷新页面才能显示正确的组件。
我做错了什么?您还需要哪些其他信息来帮助我解决问题?
【问题讨论】:
-
这只是一个猜测。将
HashRouter替换为BrowserRouter -
我尝试了 BrowserRouter,但它也没有工作。我决定使用 HashRouter,因为我的开发服务器只提供
/URL -
你正在使用的 React Router 版本?我假设您使用的是第 4 版。
-
我正在使用
"react-router-dom": "^4.1.1" -
看来我不是唯一一个有问题的人:stackoverflow.com/questions/43836434/…
标签: reactjs react-router