时间:2021-05-26
本文介绍了React从react-router路由上做登陆验证控制的方法,分享给大家,具体如下:
验证代码
import React from 'react'import {connect} from 'react-redux';function requireAuthentication(Component) { // 组件有已登陆的模块 直接返回 (防止从新渲染) if (Component.AuthenticatedComponent) { return Component.AuthenticatedComponent } // 创建验证组件 class AuthenticatedComponent extends React.Component { static contextTypes = { router: React.PropTypes.object.isRequired, } state = { login: true, } componentWillMount() { this.checkAuth(); } componentWillReceiveProps(nextProps) { this.checkAuth(); } checkAuth() { // 判断登陆 const token = this.props.token; const login = token ? token.login : null; // 未登陆重定向到登陆页面 if (!login) { let redirect = this.props.location.pathname + this.props.location.search; this.context.router.push('/login?message=401&redirect_uri=' + encodeURIComponent(redirect)); return; } this.setState({login}); } render() { if (this.state.login) { return <Component {...this.props}/> } return '' } } // 不使用 react-redux 的话直接返回 // Component.AuthenticatedComponent = AuthenticatedComponent // return Component.AuthenticatedComponent function mapStateToProps(state) { return { token: state.token, }; } function mapDispatchToProps(dispatch) { return {}; } Component.AuthenticatedComponent = connect(mapStateToProps, mapDispatchToProps)(AuthenticatedComponent); return Component.AuthenticatedComponent}路由上使用
<Router history={browserHistory}> <Route path="/admin" component={requireAuthentication(AdminComponent)} /></Router>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
react-router模块化配置因为公司的需要最近踏进了react坑,一直在挖坑填坑,在路由这一块折腾得不行。直接进入主题,配置react-router模块化
在react-router中组件里面的跳转可以用但是在组件外面改如何跳转,需要用到react路由的historyreplace方法和push方法使用形式一样,r
前言React-Router已经发布了多个版本,利用路由导航的使用方法都不大一样,在这里总结一下。React-Router2.0.0版本2.0.0版本需要使用b
前言本文主要给大家介绍了关于react-router跳转传值的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:react-router跳转传值1.引
前言最近把react-router升级了一下,在使用react-router-dom是,子组件使用this.props.history找不到了,看看官方文档,找