我有一个使用Primer-react模板开发的React应用程序。它具有一个管理仪表板,并且在仪表板侧面板中具有多个路由。我在index.js中设置了一个Auth路由,当我转到每个路由时,它都可以正常运行。但是当重新加载页面时,页面显示找不到404页面!我保护AuthRoute中的“ /”路径,以便保护所有以“ /”开头的路径(我在仪表板内部有诸如“ / usertable”,“ / users”,“ / payments”等路径)。我不确定这里是否发生错误,因为有些路由(仪表板外部)应该在没有Auth的情况下进行访问,例如“ / Signin”。我假设,如果我可以保护仪表板内每个路由的精确路径(例如精确路径=“ / usertable”)而不是保护所有“ /”路径,那么404问题将得到解决!但是当我这样做时,注销后,我可以通过浏览器“后退”按钮返回到仪表板,这会产生另一个问题。我该如何解决?index.jsimport React from 'react';import { BrowserRouter, Switch, Route, Redirect } from 'react-router-dom';import { render } from 'react-dom';import Auth from './auth';import AppProvider from './components/AppProvider/AppProvider';import Dashboard from './containers/Dashboard';import { ForgotPassword, Signin, ResetPassword } from './pages';import registerServiceWorker from './registerServiceWorker';const AuthRoute = ({ component: Component, ...rest }) => ( <Route {...rest} render={props => { if (Auth.isAuthenticated()) { return <Component {...props} /> } else { return <Redirect to={{ pathname: '/signin' }} /> } }} />)export default render( <AppProvider> <BrowserRouter> <Switch> <Route exact path="/forgot" component={ForgotPassword} /> <Route exact path="/signin" component={Signin} /> <Route exact path="/reset/:token?" component={ResetPassword} /> <AuthRoute path="/" component={Dashboard} /> <Route path="/" component={Dashboard} /> </Switch> </BrowserRouter> </AppProvider> , document.getElementById('root'));registerServiceWorker();
添加回答
举报
0/150
提交
取消