【发布时间】:2021-10-18 06:03:23
【问题描述】:
我正在开发一个 React 应用程序,我正在尝试找出一种更好的方法来重定向到当用户点击错误路径时未找到的 404 页面。
基本上,我的应用程序有一个导航栏,其中包含三个主要路由(主页、内容、权限)和一个默认重定向来呈现一个显示 404 页面未找到的路由:
<Switch>
<Route path="/home" component={Home} />
<Route path="/content" component={Content} />
<Route path="/permissions" component={Permissions} />
<Route path="/not-found" component={PageNotFound} />
<Redirect to="/not-found" />
</Switch>
我的问题是 /Permissions 路由,因为这个路由有很多子路由来显示多个配置页面,我需要使用钩子来获取数据,所以如果用户走错了路径,它需要在被重定向到未找到的页面之前等待数据获取:
const Permissions = () => {
const {isFetchingData} = usePermissionsData();
if(isFetchingData) {
return <Loading />;
}
return (
<div className={styles.permissions} >
<div className={styles.leftMenu} >
<LeftMenu />
</div>
<div className={styles.content} >
<Switch>
<Route path="/permissions" component={PermissionsWelcome}
<Route path="/permissions/users" component={UsersPermissions}
<Route path="/permissions/content" component={ContentPermissions}
<Route path="/permissions/dashboard" component={DashboardPermissions}
<Redirect to="/not-found" />
</Switch>
</div>
</div>
);
}
所以我的问题是,是否存在更好的方法将用户重定向到未找到的页面而无需等待数据获取? (我认为这是浪费处理)。
欢迎提出任何建议!
【问题讨论】:
标签: javascript reactjs react-hooks components react-router-dom