目前我正在构建一个使用React(和React Router(的Electron应用程序。
当我打开打包的应用程序(与Electron Builder一起打包(时,最初没有匹配的路由。所以我记录了应该在初始加载时/
location.pathname
。相反,我得到了我的index.html
放置位置的整个路径(blabla/dist/mac/ds-video-wall.app/Contents/Resources/app.asar/dist/index.html
(。
我通过添加以下代码来解决此问题(临时(:
componentWillMount() {
// Electron 'bugfix', feels dirty
if (this.props.location.pathname !== '/') {
this.props.history.push('/');
}
}
在此重定向之后,我可以开始使用导航,从那里一切正常。每次我更改路线时,我都会记录location.pathname
,它总是正确的。因此,此问题仅在初始加载时发生。
但是,我不喜欢我的解决方案,我认为这应该以不同的方式解决。关于如何纠正错误的location.pathname
初始值的任何想法?
这实际上很容易解决:我只需要使用HashRouter而不是BrowserRouter。
之后一切正常,我可以删除我的"错误修复"。