我有一个小部件,其属性之一为String Function() validation
。
小部件看起来像
MyWidget(validation: () {
if (text.isEmpty) {
return "Text is required";
} else {
return null;
}
},
);
问题是当我尝试访问MyWidget.validation时,我希望它能给我字符串,但出现错误,提示
A value of type 'String Function()' can't be assigned to a variable of type 'String'.
有人可以告诉我出路吗?谢谢
答案 0 :(得分:0)
假设您的小部件看起来像这样:
class MyWidget extends StatelessWidget {
final ValueChanged<String> validation;
const MyWidget({Key key, this.validation}) : super(key: key);
@override
Widget build(BuildContext context) {
return SomeWidget();
}
}
这现在应该可以工作:
MyWidget(
validation: (text) {
if (text.isEmpty) {
return "Text is required";
} else {
return null;
}
},
);
答案 1 :(得分:0)
改为访问MyWidget.validation()
。