相关疑难解决方法(0)

const构造函数如何实际工作?

我注意到可以在Dart中创建一个const构造函数.在文档中,它表示该const单词用于表示编译时间常量.

我想知道当我使用const构造函数创建对象时会发生什么.这是一个永远相同且在编译时可用的不可变对象吗?const构造函数的概念实际上如何工作?const构造函数与"常规"构造函数有何不同?

dart

77
推荐指数
3
解决办法
2万
查看次数

带有const关键字的Flutter变量

在Flutter文档的“编写您的第一个应用程序”教程中,步骤4名为“步骤4:创建无限滚动ListView”,要求您创建2个变量,显示在此处:

class RandomWordsState extends State<RandomWords> {
  final _suggestions = <WordPair>[];

  final _biggerFont = const TextStyle(fontSize: 18.0);
  ...
}
Run Code Online (Sandbox Code Playgroud)

为什么const在第三行使用关键字?我来自C#和JavaScript背景,我不习惯在赋值语句的右侧看到它。我注意到,如果将其删除,它仍然可以按预期工作。您能以拉面语来解释为什么要使用它,什么时候应该这样做?我猜想这太过分了,我不必使用它,但我只是想确定一下。

我不认为这是重复的,因为这篇文章中的答案非常适合解释我的问题,而在另一篇文章中找不到,更不用说另一篇文章是两部分的问题,使用Google时没人会找到。

dart flutter

8
推荐指数
2
解决办法
5588
查看次数

InputDecoration errorText必须是常量

[dart]无效的常量值.[dart]常量创建的参数必须是常量表达式.

我想制作DropdownButton,但errorText只接受常量变量.

[dart] Invalid constant value.
[dart] Arguments of a constant creation must be constant expressions.

常量变量意味着我不能用其他文本替换.

也许还有其他任何方式来进行DropdownButton验证吗?

String errorGender = null;

    var _inputGender = InputDecorator(
      decoration: const InputDecoration(labelText: 'Gender', errorText: errorGender),
      isEmpty: data['gender'] == null,
      child: DropdownButtonHideUnderline(
        child: ButtonTheme(
          alignedDropdown: true,
            child: DropdownButton(
              isDense: true,
              value: data['gender'],
              onChanged: (value) => setState(() => data['gender'] = value),
              items: _gender.map((value) {
                return DropdownMenuItem(
                  value: value,
                  child: Text(value[0].toUpperCase() + value.substring(1)),
                );
              }).toList()
            )
        )
      )
    );
Run Code Online (Sandbox Code Playgroud)

flutter dropdownbutton

5
推荐指数
1
解决办法
2547
查看次数

dart 常量创建的参数必须是常量表达式

在使用 flutter 开发应用程序时,我想定义一些常见的样式。

\n\n

代码如下:

\n\n
import 'package:flutter/material.dart';\nclass AppStyle {\n  static Color colorRed = const Color(0xffe04f5f);\n  static Color colorWhite = const Color(0xffffffff);\n  static Color colorGreen = const Color(0xff1abc9c);\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,我想定义一种新的风格。

\n\n
static TextStyle listRowTitle = const TextStyle(fontSize: 20.0, color: colorGreen);\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果你写成上面的,那么colorGreen这里就会出现问题。错误的信息是

\n\n
[dart] Invalid constant value.\n[dart] Arguments of a constant creation must be constant expressions.\nColor colorGreen\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果把colorGreen改为Color(0xff1abc9c)就没有问题了!

\n\n
static TextStyle listRowTitle = const TextStyle(fontSize: 20.0, color: Color(0xff1abc9c));\n
Run Code Online (Sandbox Code Playgroud)\n\n

请教我\xef\xbc\x8cplease!

\n

dart flutter

5
推荐指数
1
解决办法
8713
查看次数

标签 统计

dart ×3

flutter ×3

dropdownbutton ×1