介绍
今天就跟大家聊聊有关怎么在反应中使用router4 +回来的实现路由权限控制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<强>路由权限控制类强>
在这个方法里面,通过sessionStorage判断是否登录了,如果没有登录,就保存一下当前想要跳转的路由到回家的里面。然后跳转到我们登录页。
import React 得到& # 39;反应# 39; import {,路线,Redirect },得到& # 39;react-router-dom& # 39; {},setLoginRedirectUrl  import 得到& # 39;. ./行动/loginaction # 39; class AuthorizedRoute  extends React.Component  { 渲染才能(),{ ,,,const {组件,组件:,,……rest },=this.props ,,,const isLogged =, sessionStorage.getItem (“userName"), !=, null ?, true :,假; ,,,如果(! isLogged), { ,,,,,setLoginRedirectUrl (this.props.location.pathname); ,,,} ,,,return ( ,,,,,,,& lt; Route 其他{…},呈现={props =祝辞,{ ,,,,,,,,,return isLogged ,,,,,,,,,,,,,?,& lt; Component 道具{…},/比; ,,,,,,,,,,,,,,,& lt; Redirect =?login",/比; ,,,,,,,}},/比; ,,,) ,,} } export default  AuthorizedRoute
<强>路由定义信息强>
路由信息也很简单。只是对需要登录后才能查看的路由用AuthorizedRoute定义。
import React 得到& # 39;反应# 39; import {, BrowserRouter,开关,,,,Redirect },得到& # 39;react-router-dom& # 39; import Layout 得到& # 39;. ./页面/布局/布局# 39; import Login 得到& # 39;. ./页面/登录/登录# 39; import AuthorizedRoute 得到& # 39;。/AuthorizedRoute& # 39; import NoFound 得到& # 39;. ./页面/noFound NoFound& # 39; import Home 得到& # 39;. ./页面/home/回家# 39; import Order 得到& # 39;. ./页面/订单/订单# 39; import WorkOrder 得到& # 39;. ./页面/订单/WorkOrder& # 39; export const Router =,(),=祝辞,( ,,,& lt; BrowserRouter> ,,,,,& lt; div> ,,,,,,,& lt; Switch> ,,,,,,,,,& lt; Route 路径=?login",组件={登录},/比; ,,,,,,,,,& lt; Redirect 从=??exact =?login"/祝辞{/*注意重定向转向的地址要先定义好路由*/} ,,,,,,,,,& lt; AuthorizedRoute 路径=?layout",组件={布局},/比; ,,,,,,,,,& lt; Route 组件={NoFound}/比; ,,,,,,,& lt;/Switch> ,,,,,& lt;/div> ,,,& lt;/BrowserRouter> )
<>强登录页强>
就是把存在回家的里面的地址给取出来,登录成功后就跳转过去,如果没有就跳转到默认页面,我这里是默认跳到主页。因为用了antd的表单,代码有点长,只需要看连接回来的那两句和handleSubmit里面的内容。
import React 得到& # 39;反应# 39; import & # 39;。/css # 39; {import login },得到& # 39;. ./. ./嘲笑/模拟# 39; import {,形式,图标,输入,,按钮,,Checkbox },得到& # 39;antd& # 39;; {},withRouter  import 得到& # 39;react-router-dom& # 39;; {},connect  import 得到& # 39;react-redux& # 39; const FormItem =, Form.Item; class NormalLoginForm  extends React.Component  { 构造函数才能(道具),{ ,,,超级(道具); ,,,this.isLogging =,假; ,,} handleSubmit 才能=,(e),=祝辞,{ ,,,e.preventDefault (); ,,,this.props.form.validateFields((呃,,值),=祝辞,{ ,,,,,if (!呃),{ ,,,,,,,this.isLogging =,真的; ,,,,,,,登录(值)((),=祝辞,{ ,,,,,,,,,this.isLogging =,假; ,,,,,,,,,let toPath =, this.props.toPath ===, & # 39; & # 39;, ?, & # 39;/布局/回家# 39;,:this.props.toPath ,,,,,,,,,this.props.history.push (toPath); ,,,,,,,}) null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null怎么在反应中使用router4 +回来的实现路由权限控制