尝试在 Flutter CupertinoNavigationBar 中定义 Button 的 onPressed 回调时出现“无效常量值”错误

Nam*_*ret 3 dart flutter

我根本无法为CupertinoNavigationBar.a 内部的尾随或前导属性定义回调函数CupertinoPageScaffold。我尝试了很多方法,但错误是相同的:“无效的常量值。”。下面是我的简单代码的屏幕截图。

有错误的代码

下面是当我将鼠标悬停在带下划线的红色语句上时出现的错误。

悬停时出现错误消息

请注意,在第 32 行,即使相同的(){}语句也能正常工作。

我的主要内容如下。正如你所看到的,我正在使用CupertinoApp.

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoApp(
      title: "Vehicles demo",
      home: VehiclesScreen(),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经被困在这个问题上几个小时了,根本无法解决。我在网上找到的类似代码也没有帮助。

Cop*_*oad 5

您需要删除,const因为您没有const为小部件提供值。所以,

代替

navigationBar: const CupertinoNavigationBar(...)
Run Code Online (Sandbox Code Playgroud)

navigationBar: CupertinoNavigationBar(...)
Run Code Online (Sandbox Code Playgroud)

  • `const` 是一个编译时常量,因此您不能为 const 小部件提供非常量值。由于“onPressed”采用动态函数(并且它是非常量的东西),因此您无法使用它。然而,作为编译时常量的“static”方法或顶级类方法可以分配给“const”小部件。 (2认同)