【问题标题】:Unable to programmatically change route in react-router无法以编程方式更改 react-router 中的路由
【发布时间】:2016-05-23 03:25:08
【问题描述】:
我正在为我的单页应用程序路由使用反应路由器。我有多个组件,它们会根据点击等用户事件而改变。
现在的问题是,对于 IndexRoute,我的路由工作正常,但对于后续路由,它会中断。根据我的分析,react-router 完美地渲染了第二个组件,但 ReactDOM.render 方法在成功渲染后将 '#' 添加到 url。它混淆了 react-router 并使其呈现默认路由。
谁能帮我解决这个问题?
注意:我想知道为什么 ReactDOM.render 会在 url 中添加空的 '#'
【问题讨论】:
标签:
javascript
reactjs
react-router
【解决方案1】:
可能是你没有启用 React-Router 提供的 'browserHistory' 功能(上次我检查,它默认为 'hashHistory')。
尝试将其添加到主文件(React 应用的客户端入口点):
import { render } from 'react-dom'
import { Router, browserHistory } from 'react-router'
import routes from './routes'
/* The rest of your other code... */
render(
<Router history={browserHistory} routes={routes} />,
document.getElementById('app')
)
然后看看你是否仍然遇到这个问题。