10

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

我想做 DropdownButton ,但 errorText 只接受常量变量。

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

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

也许还有其他方法可以进行 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()
            )
        )
      )
    );
4

1 回答 1

41

删除const之前InputDecoration

decoration: InputDecoration(labelText: 'Gender', errorText: errorGender)
于 2018-10-09T09:52:37.110 回答