Flutter:@required关键字


问题内容

我不太了解如何@required运作。例如,我看过以下代码:

class Test{
  final String x;
  Test({
    @required this.x
  });

  factory Test.initial(){
    return Test(x: "");
  }

}

但是@required这里应该怎么办?似乎使可选参数成为非可选参数。


问题答案:

@required如果具有多个命名参数,并且需要某些参数为必需参数,则需要使用@required

class Test {
  final String a; // say a is mandatory
  final String b;
  final String c;
  final String d;

  Test({
    @required this.a, // annotate it using required
    this.b,
    this.c,
    this.d,
  });
}