在nextjs中从_error.js中的getInitialProps重定向?

mud*_*udu 1 next.js

有什么方法可以从nextjs的_error.js中的getInitialProps重定向到另一个url ?

已经试过 res.redirect('/'); 在 getInitialProps 里面。

它给 TypeError: res.redirect is not a function

Mic*_*kis 6

虽然_error.js我觉得这个重定向来自不正确,但您可以尝试以下操作:

import Router from 'next/router'

// in your getInitialProps
if (res) { // server
  res.writeHead(302, {
    Location: '/'
  });

  res.end();
} else { // client
  Router.push('/');
}
Run Code Online (Sandbox Code Playgroud)

由于getInitialProps导航到不同的路由时可能在客户端上执行,因此您还应该考虑添加 else 案例。

另外,我建议您重新考虑您的方法。_error.js用于处理 404 和 500 错误,您不需要在此级别进行重定向。


如果您正在导入的错误部分getInitialProps_error.js不会被触发。