我正在尝试让我的反应应用程序在IE Edge浏览器中处理文件系统。到目前为止,我已经走到了这一步。
import { createHistory, useBasename } from 'history'
let appHistory = useBasename(createHistory)({
basename: '/build'
});
<Router history={appHistory}>
<Route path={window.location.pathname} component={App}>
这样我实际上可以看到一个页面渲染,但路由不起作用 我也在Edge浏览器文件中获得了这条路径:/// C:/ C:/ ...等等为什么它有两个C:/'s?
在Chrome中我收到此错误
未捕获DOMException:无法在“历史记录”上执行“pushState”:A URL“file:/// C:/ build / windows”的历史状态对象不能 在原始文件“null”和URL的文档中创建 '文件:/// C:/src/myproject/build/index.html'。
答案 0 :(得分:2)
您应该使用useRouterHistory
代替useBaseName
:
import { Router, Route, useRouterHistory } from 'react-router'
import createBrowserHistory from 'history/lib/createBrowserHistory'
const history = useRouterHistory(createBrowserHistory)({
basename: '/dist'
});
<Router history={history}>
<Route path="/" component={App} />
</Router>