【问题标题】:Flutter 2.0 / Dart - How to create a constructor with optional parameters?Flutter 2.0 / Dart - 如何创建带有可选参数的构造函数?
【发布时间】:2021-04-09 14:34:44
【问题描述】:

我创建了一个类并希望某些参数是可选的,但不知道该怎么做。

class PageAction {
  PageState state;
  PageConfiguration page;
  List<PageConfiguration> pages;
  Widget widget;

  PageAction({
    this.state = PageState.none,
    this.page, // Optional
    this.pages, // Optional
    this.widget, // Optional
  });

我收到了添加“必需”的建议,但这不是我需要的。有人可以帮忙解释一下吗?

【问题讨论】:

    标签: flutter constructor optional-parameters flutter-navigation dart-null-safety


    【解决方案1】:

    标题说 Flutter 2.0,但我假设您的意思是 dart 2.12 空安全。在您的示例中,所有参数都是可选的,但这不会编译,因为它们不可为空。解决方案是使用“?”将您的参数标记为可为空。

    Type? variableName // ? marks the type as nullable.
    
    class PageAction {
      PageState? state;
      PageConfiguration? page;
      List<PageConfiguration>? pages;
      Widget? widget;
    
      PageAction({
        this.state = PageState.none,
        this.page, // Optional
        this.pages, // Optional
        this.widget, // Optional
      });
    

    【讨论】:

    • 非常感谢,我编辑了帖子以使其适合您的回答。到目前为止似乎工作
    • 不客气 :) 祝你的项目好运。
    【解决方案2】:

    我已经分享了关于构造函数的详细信息,请参考我的回答https://stackoverflow.com/a/69081615/563735

    【讨论】:

      猜你喜欢
      • 2015-04-08
      • 2018-12-03
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      相关资源
      最近更新 更多