我目前正在寻找一种方法,其中我将能够知道查询值是否为空。
我使用的是路径参数方法。我有文件pages/search/[variable1].js
import { useRouter } from "next/router"
const Variable= () => {
const router = useRouter()
const { variable1 } = router.query
console.log(variable1);
}
例如,我访问localhost:3000/search/abc
,控制台将显示abc
。如果我通过localhost:3000/search/
访问它,控制台不显示任何内容。什么可能是条件,以便我可以检查variable1
是否为空?我试着做三元运算符variable1? console.log("not empty") : console.log("empty")
,但我仍然没有看到empty
在控制台中。
如果你没有在pages/search/index.js
下定义的页面,而只有pages/search/[variable1].js
,这意味着你的页面[variable1].js将永远不会捕获/search
路由,也永远不会显示你所期望的。
这里有两个选项:
- 更改页面定义以捕获搜索下的所有路由,因此您将更改路径为
pages/search/[...variable1].js
,这也将捕获搜索索引路由(/search) - 简单地在
pages/search/index.js
下创建页面,并使用查询参数捕获搜索变量
要访问localhost:3000/search
,您需要在相关路径中有index.js
文件夹。
localhost:3000/search/[veriable1].js
文件夹的期望是它期望在搜索之后有一个查询。所以localhost:3000/search
和localhost:3000/search/_example_
不是同一个页面,它们不能通过彼此访问查询。