我正在尝试在我的颤振应用程序中构建一个日期验证器,使用开关大小写:
链接到DartPad示例
class DateValidator {
DateValidator({this.selectedDate, this.type});
final String type;
final DateTime selectedDate;
dateValidator() {
String _errorMsg = '';
switch (type) {
case "event":
{
if (selectedDate == null) _errorMsg = "No date selected";
if (selectedDate == DateTime.now())
_errorMsg = "Check your selected date";
}
break;
case "test2":
{
print("test2");
}
break;
default:
{
print("Invalid Date");
}
break;
}
return _errorMsg;
}
}
void main() {
DateValidator(
selectedDate: DateTime.now(),
type: 'event',
).dateValidator().then((value) {
print(value);
});
}
然后我想像这样返回_errorMsg:
DateValidator(type: widget.deal.date).dateValidator()
.then((errorMsg){
print(errorMsg);
});
这导致:
类 'bool' 没有实例方法 'then'。
如何正确返回值?
替换您的:
dateValidator() {
跟:
Future<String> dateValidator() async {
这样做的原因:如果要then
方法中获取结果,则需要将方法的返回类型指定为Future<String>
then
因为是类中定义的方法Future
。