问题:如果我将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
答案 0 :(得分:0)
路由器basename错误。 “/”而不是“”。