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

Flutter报错:MaterialPageRoute无法赋值给Route<Map>类型参数求助

解决Flutter中“参数类型'MaterialPageRoute'无法赋值给参数类型'Route'”的问题

嘿,这个问题我之前也碰到过,是Flutter版本更新后泛型类型检查更严格导致的!咱们来一步步搞定它:

问题根源

你调用Navigator.of(context).push()时,传入的MaterialPageRoute没指定泛型参数,但await期望接收的是Map类型的返回值。现在Flutter的类型系统要求Route的泛型必须和返回值类型完全匹配,所以就出现了类型不兼容的报错。

修改后的代码

只需要给MaterialPageRoute明确指定泛型为<Map>,让它和你期望的返回值类型对齐就行:

class Klimatic extends StatefulWidget {
  @override
  _KlimaticState createState() => new _KlimaticState();
}

class _KlimaticState extends State<Klimatic> {
  String _cityEntered;

  Future _goToNextScreen(BuildContext context) async {
    Map results = await Navigator.of(context).push(
      new MaterialPageRoute<Map>( // 这里指定泛型为Map
        builder: (BuildContext context) {
          // 这里填写你跳转页面的代码,确保该页面返回的是Map类型数据
          return YourNextScreen();
        },
      ),
    );
  }
}

额外提示

如果你的下一个页面返回的不是Map类型,记得同步调整MaterialPageRoute的泛型(比如MaterialPageRoute<String>),同时修改接收返回值的变量类型,保持前后类型一致。

内容的提问来源于stack exchange,提问作者Fagner Schuindt Caetano

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:41:55