为什么我收到错误,在 flutter statfulwidget flutter 中无效的常量值
Why I'm getting the error, Invalid constant value in flutter statfulwidget flutter
在下面的代码中 widget.hintText 给出了错误,我试图将日期选择器作为单独的组件并在从其他文件调用它时动态传递提示文本值。
import 'package:date_field/date_field.dart';
import 'package:flutter/material.dart';
class DatePicker extends StatefulWidget {
final String hintText;
DatePicker({
this.hintText,
Key key,
}): super(key: key);
@override
_DatePickerState createState() => _DatePickerState();
}
class _DatePickerState extends State<DatePicker> {
@override
Widget build(BuildContext context) {
return DateTimeFormField(
decoration: const InputDecoration(
hintText: widget.hintText,
hintStyle: TextStyle(color: Colors.black54,fontSize: 16),
errorStyle: TextStyle(color: Colors.redAccent),
suffixIcon: Icon(Icons.event_note),
),
mode: DateTimeFieldPickerMode.date,
autovalidateMode: AutovalidateMode.always,
// validator: (e) => (e?.day ?? 0) == 1 ? 'Please not the first day' : null,
onDateSelected: (DateTime value) {
},
);
}
}
您可以尝试从字符串中删除 final
关键字
错误来自于在 const 对象 InputDecoration
中使用变量 widget.hint
我在 date_field 代码中找不到强制您使用常量的地方 decoration
所以您可以删除 InputDecoration
前面的 const
关键字
const
和final
的区别详见
在下面的代码中 widget.hintText 给出了错误,我试图将日期选择器作为单独的组件并在从其他文件调用它时动态传递提示文本值。
import 'package:date_field/date_field.dart';
import 'package:flutter/material.dart';
class DatePicker extends StatefulWidget {
final String hintText;
DatePicker({
this.hintText,
Key key,
}): super(key: key);
@override
_DatePickerState createState() => _DatePickerState();
}
class _DatePickerState extends State<DatePicker> {
@override
Widget build(BuildContext context) {
return DateTimeFormField(
decoration: const InputDecoration(
hintText: widget.hintText,
hintStyle: TextStyle(color: Colors.black54,fontSize: 16),
errorStyle: TextStyle(color: Colors.redAccent),
suffixIcon: Icon(Icons.event_note),
),
mode: DateTimeFieldPickerMode.date,
autovalidateMode: AutovalidateMode.always,
// validator: (e) => (e?.day ?? 0) == 1 ? 'Please not the first day' : null,
onDateSelected: (DateTime value) {
},
);
}
}
您可以尝试从字符串中删除 final
关键字
错误来自于在 const 对象 InputDecoration
widget.hint
我在 date_field 代码中找不到强制您使用常量的地方 decoration
所以您可以删除 InputDecoration
const
关键字
const
和final