我正在尝试以如下方式使用React Router,其中route参数是路由路径中的第一件事(参见“ siteId”参数)
<Route path={"/:siteId/calendar/:calendarId?" component={Calendar} />
<Route path={"/:siteId/client/:clientId?" component={Calendar} />
...
我面临的问题是,即使新路径通过了完全相同的<Route>
,React Router也会在每次重定向用户时(使用history.push)重新安装(卸载+装载)组件。组件。
例如,在路径/someSiteId/calendar/someCalendarId
上并调用history.push("someOtherSiteId/calendar/someOtherCalendarId")
将解析与我当前正在渲染的路径相同的<Route>
,但不仅仅是重新渲染此路径安装的组件,它将重新安装它。
据我测试,我发现这种行为是由于路径路径开头的动态参数引起的。如果使用静态,则一切正常。
是否有任何已知的解决方法能够在不重新安装组件的情况下将路径参数放在路径的第一位?