我需要将一个字符串从一个类传递到另一个类,但我收到了一个错误.

下面是我想要从中传递参数的类的代码:

onTap: () {
                                String titleCompanyId =  snapshot.data?.docs[index].id;
                                Navigator.of(context).push(
                                  MaterialPageRoute(
                                    builder: (context) =>
                                        const TitleCompanyScreen(false, snapshot.data?.docs[index].id),
                                  ),
                                );
                              },

错误发生在我传递的第二个参数(snapshot.data?)上.docs[index].id),这是错误:

Invalid constant value.

该参数是来自Cloud FiRestore的文档ID.

这是我在其中接收参数的代码:

class TitleCompanyScreen extends ConsumerStatefulWidget {

  const TitleCompanyScreen([
    this.isNewTitleCompany,
    this.titleCompanyId,
    Key? key,
  ]) : super(key: key);

  final bool? isNewTitleCompany;
  final String? titleCompanyId;

  @override
  ConsumerState<TitleCompanyScreen> createState() => _TitleCompanyScreenState();
}

如何传递此参数? 谢谢

最新情况:

这就是我现在得到的第一个答案.

onTap: () {
                                String? titleCompanyId =  snapshot.data?.docs[index].id;
                                
                                Navigator.of(context).push(
                                  MaterialPageRoute(
                                    builder: (context) =>
                                        const TitleCompanyScreen(false, titleCompanyId),
                                  ),
                                );
                              },

现在,我收到了关于tileCompanyId参数的以下错误:

Arguments of a constant creation must be constant expressions.
Try making the argument a valid constant, or use 'new' to call the constructor.

推荐答案

您应该从MaterialPageRoute中删除关键字const,并直接传递参数,而不是将它们包装在常量构造函数中.

onTap: () {
  String titleCompanyId = snapshot.data?.docs[index].id;
  Navigator.of(context).push(
    MaterialPageRoute(
      builder: (context) => TitleCompanyScreen(false, titleCompanyId),
    ),
  );
},

Flutter相关问答推荐

如何将图像从顶部和底部半向外设置为飘动

我怎样才能判断一个字符串值是否为空(&Q;&Q;)?

如何防止onTapCancel由子元素触发?

参数类型';List<;Dynamic&>不能分配给参数类型';List<;SingleChildWidget&>';

在 flutter 的列中使用 Expanded 时出现渲染 Flex 错误

如何在 VS Code 中启用 Flutter 运行/调试工具栏?

Flutter 未处理的异常 - 对 null 值使用 Null 判断运算符

以编程方式在 flutter 中安装 apk 时解析错误

使 Row 中的元素保持在中间的空间,如果它们太大,则将它们包裹起来

输入处于活动状态时如何设置文本字段标签的样式?

如何在 Flutter 中的 BackdropFilter.blur 中制作一个 100x100 的清晰孔

如何(部分)更新 riverpod 中的 AsyncValue?

flutter 中 // 和 /// 有什么区别

如何流畅切换画面?

按下 Command+W 时关闭窗口

如何修复int类型不是String类型的子类型

在 Flutter 中,您什么时候应该更喜欢Widget继承而不是组合?

type '_InternalLinkedHashMap' 不是使用 http 包的'String' 类型的子类型

如何在 ElevatedButton 上设置背景 colored颜色 动画?

Flutter GetX:Get.put 在 Widget 中的什么位置?