错误:
常量创建的参数必须是常量表达式。
代码:
import 'package:flutter/material.dart';
main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget{
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return _MyAppState();
}
}
class _MyAppState extends State<MyApp> {
List<String> _products = ['Food Tester'];
var _font_size = 20.0;
build(context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('EasyList'),
),
body: Column(
children: [
Container(
margin: EdgeInsets.all(_font_size),
child: RaisedButton(
onPressed: () {},
child: Text('Add product'),
),
),
Column(children: _products.map((element) =>Card(
child: Column(
children: <Widget>[Image.asset("assets/food.jpg"), Text(element)],
),
)).toList()),
],
),
));
}
}
注意:当参数为静态时,我的意思是20.0
,那么它工作正常,但是如果将其作为变量,则Dart编译会失败。这里的变量正在EdgeInsets.all
方法内部传递,并且编译失败。
答案 0 :(得分:1)
@override
Widget build(BuildContext context) {
const double _font_size = 20;
.....
}
这仅是使用常量,因此我们需要将const声明为变量。