ReactJS/Redux-根组件页面在从任何页面刷新时呈现
我的应用程序有一个默认路由,可以在开发模式下在ReactJS/Redux-根组件页面在从任何页面刷新时呈现,reactjs,url,redux,react-router,Reactjs,Url,Redux,React Router,我的应用程序有一个默认路由,可以在开发模式下在localhost/路径上加载组件HomePage 但当我从任何页面刷新应用程序时,都会显示主页,即使浏览器中的URL显示为localhost/any/other/path。然后,如果我通过应用程序手动导航到/any/other/path路径,浏览器的URL将变成localhost/any/other/path/any/other/path 这就像路由器在刷新时总是认为当前路径是/。 问题可能是什么?我正在使用React 16和“React路由器do
localhost/
路径上加载组件HomePage
但当我从任何页面刷新应用程序时,都会显示主页,即使浏览器中的URL显示为localhost/any/other/path
。然后,如果我通过应用程序手动导航到/any/other/path
路径,浏览器的URL将变成localhost/any/other/path/any/other/path
这就像路由器在刷新时总是认为当前路径是/
。
问题可能是什么?我正在使用React 16和“React路由器dom”:“5.1.2”
我的路线如下:
<Provider store={store}>
<ConnectedRouter>
<div>
<Switch>
<Route exact path="/" component={HomePage} />
<Route exact path="/login" component={LoginPage} />
<Route exact path="/proxy" component={ProxyPage} />
...
</Switch>
</div>
</ConnectedRouter>
</Provider>
在存储中,即使在加载URL时,路由器
减速机也会按如下方式启动:
路由器:{
行动:“流行”,
地点:{
散列:“”,
路径名:“/”,
查询:{},
搜索:“,
状态:未定义
}
}
编辑:将我的用例简化为更简单,添加了更多信息
<Provider store={store}>
<ConnectedRouter>
<div>
<Switch>
<Route exact path="/">
<Redirect to="/home" />
</Route>
<Route exact path="/login" component={LoginPage} />
<Route exact path="/proxy" component={ProxyPage} />
...
</Switch>
</div>
</ConnectedRouter>
</Provider>
...
我不是100%确定,但我的直觉是,这种行为与使用Redux和ConnectedRouter的关系更大,而不是与我认为合适的路由相关。2个问题:
如果为true,重定向将在历史记录上推送一个新条目,而不是替换当前条目 将推送重定向到=“/where/else”/ 是否在代码中使用重定向推送功能?发现问题 我已经更改了browserHistory配置中的默认
basename
参数,据我所知,该参数不起作用(我试图修复应用程序启动时缺少重定向的问题)
删除
basename:window.location.pathname
行修复了我的(自我造成的)问题。如果您还添加一些路由器设置的代码示例(以获得更准确/具体的答案),则效果更好。感谢您的输入。愚蠢的问题-你所说的路由器设置到底是什么意思?交换机内部的路由组件等?是。另外,添加一些代码示例。我没有使用热重新加载。如果有帮助的话,我已经对我的问题进行了编辑,以获得一个更直接的场景,即使使用完全正常的路线,问题仍然存在。我还添加了一些与Redux相关的信息。