Flutter错误字符串Function()不能分配给'String'类型的变量

时间:2020-04-18 07:18:08

标签: flutter dart

我有一个小部件,其属性之一为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'.

有人可以告诉我出路吗?谢谢

2 个答案:

答案 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()