【问题标题】: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')
)

然后看看你是否仍然遇到这个问题。

【讨论】:

    猜你喜欢
    • 2018-02-26
    • 1970-01-01
    • 2022-01-01
    • 2017-09-03
    • 2017-08-25
    • 1970-01-01
    • 2020-05-19
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多