Reactjs nextjs 9注销-重定向到登录页面

Reactjs nextjs 9注销-重定向到登录页面,reactjs,next.js,Reactjs,Next.js,我在清除cookie并重定向到登录页面的页面中创建注销目录。当用户成功登录时,注销可以正常工作,但若页面被重新加载或刷新,重定向功能将无法工作 注销: import { logOut } from '../../store/user/userAction'; import redirect from '../../utils/redirect'; const Logout = () => { return null; }; Logout.getInitialProps = ({ st

我在清除cookie并重定向到登录页面的页面中创建注销目录。当用户成功登录时,注销可以正常工作,但若页面被重新加载或刷新,重定向功能将无法工作

注销:

import { logOut } from '../../store/user/userAction';
import redirect from '../../utils/redirect';

const Logout = () => {
  return null;
};
Logout.getInitialProps = ({ store, res }) => {
  store.dispatch(logOut());
  redirect(res, '/login');
  return {};
};
export default Logout;
重定向:

import Router from 'next/router';

export default (res, target) => {
  if (res) {
    // server
    // 303:"see other"
    res.writeHead(302, { Location: target });
    res.end();
  } else {
    Router.push(target);
  }
};

出于好奇,为什么您需要将
注销
作为一个页面,我认为您可以将其作为一个函数,并从您希望用户单击以注销的任何按钮调用它。要调试上述问题,您可能需要先尝试将
console.log
放在`
store.dispatch(logOut())
之后。可能
store.dispatch
没有成功调用,因此它没有转到
redirect
我尝试了所有注销方法,甚至从按钮调用!注销操作只需清除所有cookie即可正常工作我的问题是关于重定向功能或某些配置,如果页面重新加载或刷新,重定向功能不工作我怀疑问题出在
存储区。分派(logOut())
中。您能否确保在重新加载/刷新页面后,store.dispatch(logOut());`仍然被调用?不幸的是,没有,我在调用重定向函数后得到([Violation]'setTimeout'处理程序花了62毫秒)。这与此问题有关吗?有趣的是,在应用程序中哪里有
setTimeout
方法?也许这就是原因