关于路由守卫的问题

来源:10-10 完成issue搜索功能的开发

BugsMaker

2020-03-01

我看了很多资料,并没有看到有next.js关于路由守卫的功能,难道next.js不能做路由守卫嘛?(为了做未登陆的限制)

写回答

1回答

Jokcy

2020-03-01

你没看错,确实没有,不过实现也很简单,做个HOC来处理就行了

0
4
BugsMaker
回复
Jokcy
import {connect} from 'react-redux' import Index from '../pages/index' import Router from 'next/router'; export default function (Comp) { function RouterGuard({ pageData, user }) { console.log("user", user) if(user && user.id) { return( ) }else { return( ) } } RouterGuard.getInitialProps = async (context) => { let pageData = {} if(Comp.getInitialProps) { pageData = await Comp.getInitialProps(context) } console.log("pageData", pageData) return { pageData } } return connect(function(state) { return { user: state.user } })(RouterGuard) }
2020-03-13
共4条回复

全栈进阶课程 React16.8+Next.js+Koa2一步到位开发Github

学习React/Next.js服务端渲染SSR同构设计方案,理解OAuth登录体系的实现原理

651 学习 · 311 问题

查看课程