Flutter 中的 VoidCallback 是如何工作的?

2023-11-27

我从互联网上了解到的信息是无效回调()是不带参数也不返回任何参数的函数。 以下代码来自应用程序,并且该应用程序运行良好,我想问一下使用 VoidCallback 作为type而不是作为function ?

我是 Flutter 开发的绝对初学者,请指导我。

class LoginPage extends StatefulWidget {
  final BaseAuth auth;
  final VoidCallback onSignedIn;
  LoginPage(this.auth);

  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return (_LoginPageState());
  }
}

VoidCallback 是 void 函数:

typedef VoidCallback = void Function();

VoidCallback 是不带参数也不返回任何参数的函数

Function是所有函数类型的基类。

所以从技术上来说你可以做

//instead of
final VoidCallback onSignedIn;
// could call this
final Function onSignedIn;

但如果你想通过具体的功能。假设函数不接受任何参数或返回任何内容,VoidCallback 会是更好的选择,因为它会检查类型。

class A {
  final Function function;
  A(this.function){
    function("test"); // gonna print test
  }
}

class B {
  final VoidCallback voidCallback;
  B(this.voidCallback){
    voidCallback(); // gonna run void function
  }
}

String getString(String value) {
  print(value);
  return value;
}

void main() {
  A(getString);
  B(getString); //The argument type 'String Function(String)' can't be assigned to the parameter type 'void Function()'
}

您还可以使用以下命令设置自己的函数定义typedef

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter 中的 VoidCallback 是如何工作的? 的相关文章

随机推荐