next.js - NextJS获取url参数一开始就返回空
问题描述
我想在页面的开头获取 URL 参数,但首先它返回空,一段时间后
const rout = useRouter()
useEffect(() => {
console.log('queries:')
console.log(rout.query)
}, [rout])
它第一次返回 {},但在渲染之后,它返回 {'myparam': 'blabla'}
如何在不返回空结果的情况下获取 URL 参数?
解决方案
根据docs,useRouter
来自的钩子next/router
返回一个 prop isReady
,您可以检查它。
isReady
:boolean
- 路由器字段是否在客户端更新并准备好使用。应该只在 useEffect 方法内部使用,而不是在服务器上进行有条件的渲染。
const rout = useRouter()
useEffect(() => {
if (rout.isReady) {
//rout.query will be ready here
}
}, [rout])
推荐阅读
- c++ - 使用 mongo c++ 驱动程序查询嵌套的 BSON 文档
- docker - 如何在 Docker 容器中启动 SSHD
- java - 如何组合 System.out.printf 运算符的两种方法?
- node.js - 如何在 chai mocha 中恢复 mongo
- javascript - 在使用 getElementById 的元素上使用 ngClass,元素为空
- wordpress - 如何让 Wordpress 识别页面上的相对 URL 链接?
- sql - SQL在2个表中查找多个组合(包含所有记录)
- dplyr - 使用 tidyeval 的大括号和 dplyr::group_by
- sql - 电子邮件重复百分比计算
- excel - Excel列自动计算