有没有办法在react路由中传递参数而不在url中使用它?

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

我想创建一个页面的路由,该页面将根据

id
中存储的内容而变化。但是,我也希望页面 URL 与
id
完全不同。我目前有一个工作路线:
<Route path="/schedule/:url" element={<SchedulePage />} />
。这正确地将路径设置为“website.com/schedule/”+
url
中存储的任何内容。问题是:在我的 SchedulePage 中,我想显示从
id
获取的信息。我能找到的唯一方法是使用参数,但我想将
id
保留在我的网址之外。如何将
id
作为参数传递给路由而不将其包含在 url 中?

我尝试将路线更改为

<Route path="/schedule/:url/:id?" element={<SchedulePage />} />
,希望它不会包含 id,但这根本不起作用。

更新:

我在 STerliakov 的帮助下找到了解决方案(请参阅下面的评论来阅读我们的对话。)

我需要的是 Mongoose 函数

findOne()
。利用这个,我能够实现我希望实现的目标;创建一个唯一的、用户定义的字符串,其用途与
_id
(可用于查找任何一个对象的唯一锚点。)

reactjs react-router-dom
1个回答
0
投票

通过使用 Mongoose 函数

.findOne
,您可以使用唯一值来查找对象。通过将用户选择的字符串设置为类似
url
的内容,您可以使用以下代码:

Schedule.findOne({url});

这有效地生成了类似于

_id
的值,可用于查找特定对象,但是
url
必须 是唯一的。对于我来说这不是问题,因为无论如何我都想使用该值来生成唯一的页面 URL。在过去的两个小时里我学到了很多东西。

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