【发布时间】:2020-11-07 17:53:38
【问题描述】:
我正在尝试创建一个DatePicker 小部件以在开始日期和结束日期之间进行选择;这些字段存储在DateRange 类中。在初始化表单字段时,我还需要初始化 DateRange 对象,以便我可以访问开始日期字段和结束日期字段。但是,由于它是一个自定义对象,我无法在 FormField 构造函数中初始化 initialValue 字段。有没有办法让我初始化,以便在调用超类之前将其分配给initialValue?
import 'package:flutter/material.dart';
class DateRange {
DateTime start;
DateTime end;
DateRange({this.start, this.end});
}
class DatePicker extends FormField<DateRange> {
final ValueChanged<DateRange> onChanged;
DatePicker(
BuildContext context, {
Key key,
FormFieldSetter<DateRange> onSaved,
FormFieldValidator<DateRange> validator,
this.onChanged,
DateRange initialValue, /// I would like to do: initialValue = DateRange(), but it doesn't work.
bool autovalidate = false,
bool enabled = true,
}) : super(
onSaved: onSaved,
validator: validator,
initialValue: initialValue,
autovalidate: autovalidate,
enabled: true,
builder: (FormFieldState<DateRange> state) {
return Container(); /// Where the implementation is
});
}
【问题讨论】: