Javascript 为什么路由器setRouteLeaveHook断开了索引链接?

Javascript 为什么路由器setRouteLeaveHook断开了索引链接?,javascript,reactjs,react-router,Javascript,Reactjs,React Router,问题:如果我将router.setRouteLeaveHook()或router.listenBefore()添加到我的组件,它将断开指向path=“/”的徽标主页链接 详细信息: 我想创建“休假确认”部分。这是我的组件代码。(带路由器包装) 我的问题是,当我单击链接或IndexLink(路径=“/”)并确认转换时,我遇到了错误: Uncaught DOMException: Failed to execute 'pushState' on 'History': A history state

问题:如果我将router.setRouteLeaveHook()或router.listenBefore()添加到我的组件,它将断开指向path=“/”的徽标主页链接

详细信息: 我想创建“休假确认”部分。这是我的组件代码。(带路由器包装)

我的问题是,当我单击链接或IndexLink(路径=“/”)并确认转换时,我遇到了错误:

Uncaught DOMException: Failed to execute 'pushState' on 'History': A history state object with URL 'http:' cannot be created in a document with origin 'http://mydomain.dev' and URL 'http://mydomain.dev/user/services'.
调试:发现lib/createBrowserHistory.js中有此函数调用

window.history.pushState(historyState, null, path);
其中路径为//而不是预期的/。(位置对象具有基“/”和路径“/”)


版本:react@15.4.1,反应-router@2.8.1, history@2.1.2路由器basename错误。“/”而不是“。

路由器basename错误。“/”而不是“。

看起来与相关。你的HTML中有基本标签吗?还可以尝试使用相对路径作为临时解决方法
我没有基本标记。我在
useRouterHistory(createHistory)({basename:config.base_NAME})上设置base。当我将链接更改为相对路径时,
浏览器url看起来正常,但react路由器将不匹配它作为索引路由,我必须添加
找到config.BASE_NAME=“/”。当我删除那个斜杠时,它就工作了。谢谢@EvanSebastianLooks喜欢的相关书籍。你的HTML中有基本标签吗?还可以尝试使用相对路径作为临时解决方法
我没有基本标记。我在
useRouterHistory(createHistory)({basename:config.base_NAME})上设置base。当我将链接更改为相对路径时,
浏览器url看起来正常,但react路由器将不匹配它作为索引路由,我必须添加
找到config.BASE_NAME=“/”。当我删除那个斜杠时,它就工作了。谢谢你@EvanSebastian
window.history.pushState(historyState, null, path);