如何在remix.run中重定向到自定义404页面?

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

我尝试将 URL 重定向到 remix.run 中的自定义 404 页面,但无法执行此操作。我有一个类似这样的 url 结构 -

app/
 ├── routes/
 │   ├── $dynamicfolder/
 │   │   ├── index.tsx
 │   │   ├── somepage.tsx
 │   │   ├── $.tsx
 │   └── index.tsx
 └── root.tsx

我在

$dynamicfolder
下有一定数量的页面,可以像这样访问它们 -

"https://example.com/xx/" (This is to access the index.tsx, I have 2 fixed values that are 
passed in "$dynamicfolder", let's say xx and xy),


"https://example.com/xx/somepage" (This is to access the other page)

当传入一些其他随机值时

$dynamicfolder
,我们说“yy”,就像这样 -

"https://example.com/yy/"

然后我希望由也在

$.tsx
内部的
$dynamicfolder
处理。不幸的是,这并没有发生,并且抛出了一个明显的错误。

我正在使用

$dynamicfolder
钩子访问
$dynamicfolder/index.tsx
useParams()
的值。我只想在传递除
xx
xy
之外的任何其他值时将页面重定向到 404。

我确实遵循了混音文档,Splat URLs动态路由参数,但也许我犯了某种我无法发现的错误。

也有可能我的做法是错误的,因为我是 remix.run 的新手。任何帮助将不胜感激。谢谢。

javascript reactjs typescript react-hooks remix.run
1个回答
1
投票

在加载程序中,根据需要检查参数和

throw new Response("Not found", { status: 404 })
。抛出响应将呈现最接近的
<CatchBoundary>

在您的 root 路由中,导出

<CatchBoundary>
以显示您的自定义 404 错误。

https://remix.run/docs/en/v1/guides/not-found#root-catch-boundary

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