【问题标题】:Prevent router from inserting slashes after hashes防止路由器在哈希后插入斜杠
【发布时间】:2016-02-10 17:56:52
【问题描述】:

React-Router 采用以下形式的 url:

http://localhost:1234/#home

并将其转换为:

http://localhost:1234/#/home

我可以在不分叉 react-router 的情况下阻止这种行为的发生吗?我想保持 URL 不变:http://localhost:1234/#home

问题来自HashLocation.js

function ensureSlash() {
  var path = HashLocation.getCurrentPath();

  if (path.charAt(0) === '/')
    return true;

  HashLocation.replace('/' + path);//Kaboom

  return false;
}

不确定为什么需要此代码。我试着把它拉出来,路线导航坏了。错误:

警告:没有路由匹配路径“”。确保您的路线中有某处

我修改了我的应用路由:

<Route name="app" path="" handler={require('./components/app')}>

注意

我需要继续使用hashHistory。由于我正在集成两种不同的 SPA 技术,因此无法切换到另一个历史记录实现。

【问题讨论】:

  • 我改变了方向并决定尝试不同的技术选项。

标签: reactjs react-router


【解决方案1】:

您可能想使用browserHistory 而不是hashHistory

import {browserHistory} from 'react-router';

render(
    <Router history={browserHistory} routers={routes}/>,
    document.getElementById('react')
);

查看documentation 了解更多信息。我还会仔细检查您的 react-router 版本并进行相应升级。

【讨论】:

  • 更新问题。可悲的是,这不是我的选择。总体来说还是不错的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 2020-05-13
  • 1970-01-01
  • 2018-01-01
  • 2012-08-02
相关资源
最近更新 更多