电子位置。路径名在初始加载时不正确

时间:2018-01-11 13:14:35

标签: javascript reactjs react-router electron electron-builder

目前我正在构建一个使用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的错误初始值的任何想法?

1 个答案:

答案 0 :(得分:0)

这实际上很容易修复:我只需要使用HashRouter代替BrowserRouter

之后一切正常,我可以删除我的错误修补程序'。