具有命名参数和可选参数的 Flutter 函数

Chr*_*ris 10 parameters function optional-parameters dart flutter

required我有一个函数,在最好的情况下应该有三个参数named。最后一个(“ finished”)应该是optional。我尝试过这样的:

static void showOverlay(BuildContext context, String text, bool successfull,
  [VoidCallback? finished]) {}
Run Code Online (Sandbox Code Playgroud)

但 Flutter 抱怨:

避免位置布尔参数

奇怪的是,它只是抱怨bool successfull. 我在这里做错了什么以及如何解决这个问题?

lrs*_*vmb 9

默认情况下,命名参数是可选的。所以在你的情况下它将是:

static void showOverlay({BuildContext context, String text, bool successfull, VoidCallback? finished}) {}
Run Code Online (Sandbox Code Playgroud)

请注意构造函数中的 {},这使得您的参数被命名且可选。通过在声明前面使用@required,您可以区分必需和非必需。