You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中go_router的extra参数是否支持Deep Linking?

go_router extra参数与Deep Linking兼容性说明

截至go_router的最新稳定版本(v12及以上),extra参数仍然无法配合Deep Linking工作,这个限制并没有被修改。

原因在于extra的设计定位:它是用于内存内页面跳转时传递非序列化的临时数据(比如自定义对象、未持久化的状态),不会被序列化到URL中。而Deep Linking完全依赖URL的路径、查询参数来传递信息,无法从URL中恢复extra里的内容——无论是从外部打开Deep Link,还是应用内通过Deep Link跳转,extra都会是空值。

如果需要配合Deep Linking传递数据,必须将数据编码到URL的路径参数或查询参数中:

  • 使用路径参数:
    GoRouter.of(context).go('/product/123');
    
  • 使用查询参数:
    GoRouter.of(context).go('/product?id=123&category=electronics');
    

如果要传递复杂对象,需要自行实现序列化逻辑(比如转成JSON字符串),将其放到查询参数中,再在目标页面解析还原。

内容的提问来源于stack exchange,提问作者Cyrille Dakhlia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 04:53:09