重定向到Next.js的app目录中的另一个页面服务器端

vq8itlhq  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(137)

我在Next.js应用程序中有一个服务器渲染的页面,我想检查一个条件并重定向到另一个页面。请参阅下面的代码以更好地理解:

// This is a server-rendered page
export default async function Packs() {
  const cookiesStore = cookies()
  const token = cookiesStore.get('token')?.value
  const gameInfo = await getGameInfo()
  const user = await getUserContextFromToken(token || "") as UserContext
  const theme = getThemeForLevel(user?.level || 1)
  if (isEmpty(user)) {
    // Instead of sending the home page we should be able to redirect
    return <HomePage sessionExpired={true} user={null} theme={theme} totalLevels={gameInfo.totalLevels} />
    // return NextResponse.redirect(AppRoutes.home, 302); // (is something like this possible)
  }
  return (
    <PacksPage theme={theme} currentLevel={user.level} packSize={gameInfo.packSize} totalLevels={gameInfo.totalLevels} />
  );
}

字符串

mftmpeh8

mftmpeh81#

您可以使用next/navigation中的redirect函数,例如:

// app/page.js

import { redirect } from 'next/navigation'

export default async function Page() {
  const res = await fetch('https://...')
  if (!res.ok) {
    redirect('/login')
  }
 
  // ...
}

字符串

相关问题