我正在使用reactjs开发一个前端管理员,我想仅在通过身份验证后才授予对所有页面(包括该页面的导航和常规模板)的访问权限。如果用户未通过身份验证,我只想显示登录表单,仅此而已。我已经做到了:
render() {
if (this.state.isAuthenticated === false) {
return (
<div className="App">
<BrowserRouter>
<div>
<Switch>
<Route path="/" component={Login} />
</Switch>
</div>
</BrowserRouter>
</div>
);
}
return (
<div className="App">
<BrowserRouter>
<div>
<Navigator isAuthenticated={this.state.isAuthenticated} />
<Switch>
<Route path="/login" component={Login} />
<PrivateRoute isAuthenticated={this.state.isAuthenticated} path="/" exact component={Home} />
<PrivateRoute isAuthenticated={this.state.isAuthenticated} path="/contact" exact component={Contact} />
<PrivateRoute isAuthenticated={this.state.isAuthenticated} path="/shop" exact component={Shop} />
<Route render={() => <h1>Page not found</h1>} />
</Switch>
</div>
</BrowserRouter>
</div>
);
}
}
这是个好方法还是不好?我怎样才能做得更好?
谢谢