我正在使用React(NextJs)和Apollo Client开发Intranet应用程序。我需要限制所有页面。我想将未经身份验证的用户重定向到登录页面,但是在查询中出现以下错误:
Error: No router instance found. You should only use "next/router" inside the client side of your app.
查询正在工作,唯一的问题与路由器有关。为什么我无法从Query访问它以及如何解决它?
return (
<>
<Meta/>
<div className={classes.wrapper}>
<CssBaseline/>
<Header/>
<main className={classes.content}>
<Query query={CURRENT_USER_QUERY}>
{({ data: { me } }) => {
if(!me) {
const { pathname } = this.props.router;
if (pathname !== '/login') {
Router.push('/login');
return null;
}
}
if (me) return (
<>
<div className={classes.toolbar}/>
{this.props.children}
</>
);
return <Login/>;
}}
</Query>
</main>
</div>
</>
);
谢谢:)