我试图创建一个路由,看起来像这样/property1=value1&property2=value2
,然后我需要访问property1
和property2
的值。我在pages
文件夹的根目录下创建了一个名为[property1]&[property2].js
的文件。
我正在尝试通过以下链接访问组件http://localhost:3000/property1=value1&property2=value2
//[property1]&[property2].js
import { useRouter } from "next/router";
const Component = () => {
const router = useRouter();
return (
<div>
HELLO WORLD
</div>
);
};
export default Component ;
我尝试测试router.query
的内容,并获得以下输出。
console.log(router.query);
//outputs { property1]&[property2: "property1=value1&property2=value2" }
我正在使用下一个。js版本13.3.1
,目前我不喜欢按照文档使用实验性的apps
目录。因此,通过pages
目录实现此任务的任何解决方案都是目前最受欢迎的。
2条答案
按热度按时间kuhbmx9i1#
你应该能做到的
See docs
yc0p9oo02#
我正在尝试创建一个类似于/property 1 =value1&property2= value 2的路由,然后我需要访问property 1和property 2的值
基于我们试图实现的目标
我创建了一个名为[property 1]和[property 2]的文件。js文件夹的根文件夹。
[property1]&[property2].js
不是最好的方法。如果我没有弄错的话,你想在url中传递搜索参数,并在路由'/'上的组件中访问它们。
如何操作?
NextJs新增13个
useSearchParams
钩子API1.将文件
[property1]&[property2].js
重命名为index.js
(假设它位于根路径/)1.现在你可以将查询参数传递给url示例:
/?property1=value1&property2=value2
1.使用useSearchParams钩子在组件中访问这些查询参数
useSearchParams是一个客户端组件钩子,可让您读取当前URL的查询字符串。
示例
使用
useRouter
钩子您也可以使用
useRouter
钩子来访问组件中的查询参数:编辑
我想你误解了如何在Next中使用dynamic路由。js。如果你想让
property1
和property2
成为强制性的,以访问页面,你需要有一个像这样的url/[property1]/[property2]
其中property1
是pages
上的一个文件夹,包含一个名为property2.js
的js文件。则可以通过使用