未处理的运行时错误错误:notFound() 不允许在根布局中使用

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

收到错误未处理的运行时错误错误:notFound()不允许在根布局中使用

带有应用程序目录的 next js 13 (v 13.4.12)

导入未找到:

import { notFound } from 'next/navigation'

然后在我的函数中使用它,当用户输入无效或返回的路线时,它会转到 404。

  // Throw 404 if user requests invalid project
  if (!project) {
    return notFound();
  }

但是出现错误:未处理的运行时错误错误:notFound() 不允许在根布局中使用

有人有同样的问题吗?

http-status-code-404 nextjs13
1个回答
0
投票

根据文档

调用

notFound()
函数会抛出
NEXT_NOT_FOUND
错误并终止抛出该错误的路线段的渲染。 指定
not-found
文件
允许您通过在段内渲染 Not Found UI 来优雅地处理此类错误。

因此,您需要在您的页面或其父目录中创建一个

not-found.js
文件(如果您希望它被其他子页面共享)

//not-found.js
import Link from 'next/link'
 
export default function NotFound() {
  return (
    <div>
      <h2>Not Found</h2>
      <p>Could not find requested resource</p>
      <Link href="/">Return Home</Link>
    </div>
  )
}
© www.soinside.com 2019 - 2024. All rights reserved.