flutter - 错误:无法调用需要 const 表达式的非“const”构造函数
问题描述
我采用“BottomNavigationBar”示例在其上构建我的应用程序。我试图实现这样的 RaisedButton :
child: Container(
child: Column(
children: <Widget>[
RaisedButton(
child: Text('Montag'),
)
],
),
),
),
并收到以下错误消息:
lib/main.dart:48:16: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
child: Column(
^^^^^^
lib/main.dart:47:14: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
Try using a constructor or factory that is 'const'.
child: Container(
^^^^^^^^^
我能做些什么?我知道这可能是一个不好的问题,但感谢任何帮助。
编辑:根据要求,这里有更多代码:
class _MyStatefulWidgetState extends State<MyStatefulWidget> {
int _selectedIndex = 0;
static const TextStyle optionStyle =
TextStyle(fontSize: 30, fontWeight: FontWeight.bold);
static const List<Widget> _widgetOptions = <Widget>[
Text(
'Index 0: Startseite',
style: optionStyle,
),
const Center(
child: const Container(
child: Column(
children: <Widget>[
RaisedButton(
child: Text('Montag'),
)
],
),
),
),
const WebView(
initialUrl: 'mygoogledrivelink',
javascriptMode: JavascriptMode.unrestricted,
),
];
解决方案
您没有显示它,但您肯定在小部件树中有一个更高的 const 小部件构造函数,这导致任何子小部件都需要使用const
.
不幸的是,并非所有小部件都有const
构造函数,Container
并且Column
是其中的两个示例。您将无法将这些小部件构造为构造函数的子级const
。
您可以尝试为所有需要const
构造函数的小部件寻找替代品,也可以删除const
父小部件中的关键字。
推荐阅读
- javascript - 带有必填字段的javascript序列化
- php - Laravel Model->save() 它说 Undefined property: stdClass::$plot
- javascript - 检查选择的值并将输入字段更改为只读
- reactjs - 如何在遗留 JSF Web 应用程序中使用 ReactJs?
- html - Html 值绑定
- java - int[] 和 Integer[] 之间的区别以及为什么它们被区别对待?
- c# - 使用 LINQ 将多个集合折叠成一个集合
- c# - 如何从 C# 中的方法创建窗口句柄
- ndepend - 使用 NDepend 查找所有未登录的方法 try catch
- spring-boot - Spring Boot bootRun 持续构建