无法以编程方式更改 react-router 中的路由
Posted
技术标签:
【中文标题】无法以编程方式更改 react-router 中的路由【英文标题】:Unable to programmatically change route in react-router 【发布时间】:2016-05-23 03:25:08 【问题描述】:我正在为我的单页应用程序路由使用反应路由器。我有多个组件,它们会根据点击等用户事件而改变。
现在的问题是,对于 IndexRoute,我的路由工作正常,但对于后续路由,它会中断。根据我的分析,react-router 完美地渲染了第二个组件,但 ReactDOM.render 方法在成功渲染后将 '#' 添加到 url。它混淆了 react-router 并使其呈现默认路由。
谁能帮我解决这个问题?
注意:我想知道为什么 ReactDOM.render 会在 url 中添加空的 '#'
【问题讨论】:
你能编辑你的问题并添加一点代码吗? 【参考方案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')
)
然后看看你是否仍然遇到这个问题。
【讨论】:
以上是关于无法以编程方式更改 react-router 中的路由的主要内容,如果未能解决你的问题,请参考以下文章
在 React-Router V4 中以编程方式设置路由参数最终会出现“找不到页面”
React JS:以编程方式使用 React-Router 发送道具 [重复]