Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Next.js中呈现页面之前如何重定向?_Javascript_Node.js_Next.js - Fatal编程技术网

Javascript 在Next.js中呈现页面之前如何重定向?

Javascript 在Next.js中呈现页面之前如何重定向?,javascript,node.js,next.js,Javascript,Node.js,Next.js,我想知道在Next.js中呈现页面之前是否可以重定向用户 现在我有这个: 从“下一个/路由器”导入{useRouter}; 导出默认函数重定向页面(){ const router=useRouter(); router.push('/projects'); 返回( 你好 ) } 出现此错误:错误:未找到路由器实例。您应该只在应用程序客户端使用“下一个/路由器”。 谢谢。您可以通过在返回的对象上具有“重定向”属性来完成此操作 export default function RedirectPag

我想知道在Next.js中呈现页面之前是否可以重定向用户

现在我有这个:

从“下一个/路由器”导入{useRouter};
导出默认函数重定向页面(){
const router=useRouter();
router.push('/projects');
返回(
你好
)
}
出现此错误:
错误:未找到路由器实例。您应该只在应用程序客户端使用“下一个/路由器”。

谢谢。

您可以通过在返回的对象上具有“重定向”属性来完成此操作

export default function RedirectPage() {
    return (
        <div><h1>hi</h1></div>
    )
}

export async function getServerSideProps(ctx) {
  return {
    redirect: {
      destination: '/projects',
      permanent: false,
    },
  }
}
导出默认函数重定向页面(){
返回(
你好
)
}
导出异步函数getServerSideProps(ctx){
返回{
重定向:{
目标:'/projects',
永久性:假,
},
}
}
我不能说这是否会在服务器上呈现页面,但用户将被重定向,而不会显示重定向页面的内容

const router = useRouter();

useEffect(() => {
    router.push('/projects');
},[])

return null

可能是这项工作

使用Router类重定向

import Router from "next/Router"

export default function RedirectPage() {

    Router.push({
       pathname: '/projects'
    })

    return (
        <>Redirecting ....</>
    )
}

This way you dont have to make an instance
从“下一个/路由器”导入路由器
导出默认函数重定向页面(){
路由器推送({
路径名:'/projects'
})
返回(
重定向。。。。
)
}
这样你就不必举例了