Taro页面跳转参数接收不到怎么办?

夏侯志达 阅读 68

在用Taro做小程序开发时,页面跳转传参一直接收不到值。我用params传的参数,在目标页面用useParams()获取显示undefined,这是什么问题啊?

跳转代码是这样的:

Taro.navigateTo({
  url: '/pages/detail/index',
  params: {
    id: 123
  }
})

接收页面这么写的:

const { id } = useParams()
console.log(id) // 输出undefined

路径写对了,参数名也没错,为什么就是拿不到值?是不是路由配置哪里漏了?

我来解答 赞 9 收藏
二维码
手机扫码查看
2 条解答
毅蒙~
毅蒙~ Lv1
Taro的页面跳转传参有点坑,params属性实际上不会自动把参数加到url里。你需要手动拼接参数到url上。

正确的跳转写法应该是这样:
Taro.navigateTo({
url: '/pages/detail/index?id=123'
})


然后在接收页面用getCurrentInstance().router.params.id来获取参数,比useParams()效率更高,而且更稳定。

完整接收代码:
import Taro from '@tarojs/taro'

const id = getCurrentInstance().router.params.id
console.log(id)


这个方案直接解决了参数传递问题,别再纠结params了,官方文档对这块说得也不太清楚,按这个方式来准没错。
点赞
2026-03-27 08:10
司马瑞珺
Taro跳转传参得拼在url上,不能用params。改成这样:

Taro.navigateTo({
url: /pages/detail/index?id=123
})


接收页面用 const router = useRouter() 拿到router.query.id就行,差不多就行,文档写得坑人。
点赞 8
2026-02-12 14:00