我是React Router的新手,我正在研究路由到React Router的最佳方法。
我要实现的目标:
我只希望单击“媒体管理”选项卡时,默认路由导航到/:tenantName/media_management/dashboard
而不是/:tenantName/media_management
。
问题:
我正在明确检查路由是否为初始路由,然后重新路由至
/dashboard
。这有效,但是 非常慢。当我点击时,我会注意到明显的滞后Media-management
标签。是否想知道是否有更好的方法处理默认路由?
Router.js
import { Route, Redirect, Switch, useHistory } from 'react-router-dom';
const AsyncMediaManagement = lazy(() => import('@src/features/media-management/'));
<Route
path="/:tenantName/media_management"
component={withMainLayout(AsyncMediaManagement, 'MediaManagement')}
/>
Media-management.js:
if (contentTypeSelected === '') {
props.history.push(`/:tenantName/media_management/dashboard`);
}
请帮助,我对路由器起了反应,所以非常感谢。
答案 0 :(得分:0)
尝试将exact=true
添加到您的路线
我们还能看到您的更多信息吗-您是否在显示的仪表盘上方或下方具有默认的仪表板路线?
如果您不向路线添加exact=true
道具,RR将匹配找到的第一条路线。