demo

import React from 'react';
import {Route,Redirect} from 'react-router-dom'
import {connect} from 'react-redux'
import { PropTypes } from 'prop-types'
const PrivateRoute = ({ component: Component, auth,...rest }) => (
<Route
{...rest}
render={
(props) =>
(auth.isAuthenticated === true
? <Component {...props} />
: <Redirect to='/login' />
)} />
)
PrivateRoute.propTypes = {
auth: PropTypes.object.isRequired
}
const mapStateToProps = state => ({
auth: state.auth,
})
export default connect(mapStateToProps)(PrivateRoute);

据用户的auth状态,我们将渲染Redirect或渲染组件

以下是我们PrivateRoute组件的要求。

  1. 它与<Route />具有相同的API。
  2. 它呈现<Route />并将所有道具传递给它。
  3. 它检查用户是否经过身份验证,如果是,则呈现“组件”道具。如果没有,它会将用户重定向到/ login。

最新文章

  1. ThreadLocal简单理解
  2. 【Network】OVS基础知识
  3. Visual Studio 2008 Package Load Failure:未能正确加载包“Microsoft.VisualStudio.Xaml”
  4. mysql排序时索引的注意事项
  5. hdu 1020 Encoding
  6. [转]正则表达式相关:C# 抓取网页类(获取网页中所有信息)
  7. 控制所生成的servlet的结构: JSP page指令
  8. C# winform Datagridview 标题居中
  9. Nginx rewrite 规则 与 proxy_pass 实现
  10. MySql Table错误:is marked as crashed and last (automatic?) 和 Error: Table &quot;mysql&quot;.&quot;innodb_table_stats&quot; not found
  11. centos下-MariaDB的安装
  12. 【原创】大数据基础之Spark(7)spark读取文件split过程(即RDD分区数量)
  13. Hdoj 4540.威威猫系列故事——打地鼠 题解
  14. 数据库设计理论与实践&#183;&lt;三&gt;物理设计
  15. 2019清明期间qbxt培训qaq
  16. InnoDB锁笔记
  17. C++.可变参数_ZC测试
  18. security/pam_appl.h:没有那个文件或目录
  19. MATLAB出现:错误使用 xlsread (line 251)
  20. 运行inetmgr提示“找不到文件”无法打开IIS管理器的解决办法

热门文章

  1. 5G如何让智能手机再次变得丑陋?
  2. 通过注释查找mysql的表名
  3. centos 6.5 安装 ant
  4. mybatis框架之装饰模式
  5. Sublime 配置代理以及 Socks5 转 http 代理
  6. 牛客多校训练营第九场 J - Symmetrical Painting (排序)
  7. SaltStack(自动化运维工具)
  8. LG1440 求 m 区间内的最小值
  9. [CSP-S模拟测试]:string(文艺平衡树)
  10. 107、TensorFlow变量(三)