从 getInitialProps in _error.js in nextjs 重定向?



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

已经尝试过res.redirect('/'(;在getInitialProps中。

它的给予类型错误:res.redirect 不是一个函数

虽然,这个来自_error.js的重定向对我来说不对,你可以尝试如下:

import Router from 'next/router'
// in your getInitialProps
if (res) { // server
res.writeHead(302, {
Location: '/'
});
res.end();
} else { // client
Router.push('/');
}

由于导航到其他路由时可能会在客户端上执行getInitialProps,因此还应考虑添加 else 情况。

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


如果要导入错误组件,则不会触发_error.jsgetInitialProps

试试这个?

YourPage.getInitialProps = async (ctx) => {
ctx.res.writeHead(302, {
Location: '/some_url',
'Content-Type': 'text/html; charset=utf-8',
});
ctx.res.end();

return {};
};

最新更新