为什么我无法将参数传递给另一个小部件?

问题描述 投票:0回答:1

最近我正在努力将我的 json 值集成到 flutter 设计中,我遇到了一个错误

类型“_Map”不是类型转换中“int”类型的子类型

我不知道为什么会出现这个错误,有人可以解释一下并给我纠正它的想法吗,谢谢。

代码:

GestureDetector(
                  onTap: () {
                    Navigator.pushNamed(
                      context,
                      confirmation,
                      arguments: {
                        'itemCount': _itemCount,
                        'product': widget.product,
                      },
                    );
                  },

_itemcount 是一个整数值,widget.product 是数据模型的列表值

final int itemCount;
  final Product product;
  const Previewpage({super.key, required this.itemCount, required this.product});

这是我想获取导航器代码值的页面代码

case preview: // Use the constant from constants.dart
        final count = settings.arguments as int;
        final product = settings.arguments as Product;
        return MaterialPageRoute(
          builder: (context) => Previewpage(
            itemCount: count,
            product: product,
          ),
        );

这是也传递参数的路由生成器代码。

有人可以帮我解决这个问题,并解释一下为什么我们使用路由生成器进行路由。 我认为当想要传递值时,它就像另一个小部件的看门人一样,需要进行双重确认。仅此而已

java android flutter debugging widget
1个回答
0
投票

要将传递的数据获取到另一条路线,您可以从已经传递的

settings
中提取它:

final count = settings.arguments['itemCount'] as int;
final product = settings.arguments['product'] as Product;

小心,我们使用了

[]
括号,因为您在参数中传递了
Map

© www.soinside.com 2019 - 2024. All rights reserved.