为什么react-router setRouteLeaveHook打破索引链接?

时间:2017-06-01 15:16:35

标签: javascript reactjs react-router

问题:如果我将router.setRouteLeaveHook()或router.listenBefore()添加到我的组件,它将打破logo主页链接到path =“/”

详细信息: 我想创建部分休假确认。这是我的组件代码。 (withRouter包裹)

componentDidMount() {
  this.props.router.setRouteLeaveHook(this.props.route, this.routerWillLeave);
},

routerWillLeave(nextLocation) {
    return 'Are you sure you want to leave?';
}

我的问题是当我点击链接或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);

其中path是//而不是expect /。 (位置对象具有基础'/'和路径'/')

版本: react@15.4.1,react-router @ 2.8.1,history @ 2.1.2

1 个答案:

答案 0 :(得分:0)

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