ReactRouter的Hash Router没有处理散列更改

时间:2017-08-01 17:12:04

标签: reactjs webpack react-router-v4

我正在使用ReactRouter的<HashRouter>类(我的服务器没有为<BrowserRouter>配置,这是一个内部工具,所以我不关心搜索引擎等。)

我只有一条路线:

<Route path="/:datestring" component={ConnectedDatePage} />

在我的开发版本中,这一切都很完美。然后我将应用程序(使用webpack)打包到一个页面并发布它,在服务器上,单击链接会更改哈希值 - 但页面上没有相应的更改。

使用新哈希重新加载页面会正确呈现所有内容,但是再次更改哈希不会做任何事情。可能会发生什么?

更新:我怀疑这可能是因为,在服务器上,它没有在根级别运行(例如,http://example.com/app/#/20170203/而不是http://localhost/#/20170203/)。不过,我不知道如何配置路由器来处理这个问题。

1 个答案:

答案 0 :(得分:0)

我的问题是我没有在路由中指定exact选项:

<Route exact path="/" component={Home} />
<Route exact path="/:datestring" component={ConnectedDatePage} />

如果没有此选项,则始终显示主页。非常基本但致命的错误。 :D