颤振/飞镖:从开关/机箱返回值



我正在尝试在我的颤振应用程序中构建一个日期验证器,使用开关大小写:

链接到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

最新更新