从 NextJS 中的服务器组件重定向

问题描述 投票:0回答:1

在我的 NextJS 项目中,我有一个路由(“/dashboard”),它是一个服务器组件,我想根据某些条件使用户重定向到主页(“/”),但我没有成功。

我尝试了多种方法,但没有任何效果:

这是page.js中的代码:

import jwt from "jsonwebtoken";
import { cookies } from "next/headers";
import { NextResponse } from "next/server";
import { NextResponse } from "next/server";

const page = async () => {
  const token = cookies().get("token");
  try {
    const decoded = jwt.verify(token.value, process.env.TOKEN_SECRET);
    console.log(decoded);
  } catch (err) {
    console.log(err);
    //! First Approach
    const baseUrl = "http://localhost:3000";
    const url = new URL("/", baseUrl);
    return NextResponse.redirect(url);
    //! Second Approach
    // const baseUrl = "http://localhost:3000";
    // const url = new URL("/", baseUrl);
    // redirect(url);
    //! Third Approach
    // redirect("/");
  }
  return <div></div>;
};

export default page;

有时它会给我一个错误或什么都不做,但它根本没有重定向我。谁能帮我从服务器组件重定向吗?

next.js server-side-rendering
1个回答
0
投票

将重定向函数放在 try catch 块之外

try {
}
catch (e){
}
redirect("/home")

https://www.youtube.com/watch?v=53slouncImA

© www.soinside.com 2019 - 2024. All rights reserved.