Флаттер: ключевое слово @required - PullRequest
0 голосов
/ 14 января 2019

Я не очень понимаю, как работает @required. Например, я видел этот код:

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

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

}

Но что @required должен здесь делать? Похоже, что делает необязательный параметр необязательным параметром.

Ответы [ 3 ]

0 голосов
/ 14 января 2019

@required требуется, когда у вас есть более 1 именованных параметров, и вы хотите, чтобы некоторые параметры были обязательными, вы аннотируете его, используя @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,
  });
}
0 голосов
/ 14 января 2019

@ требует, чтобы вы передавали @required помеченные аргументы при создании объекта класса. Например, при отображении диалога вы можете пометить контекст как необходимый, поскольку вы не можете отображать диалог, не имея действительного контекста. Но не стоит злоупотреблять этим.

0 голосов
/ 14 января 2019

@ required - это аннотация, которая создаст для вас предупреждение о том, что указанный параметр необходим для того, чтобы класс работал должным образом. Это не приведет к ошибкам компиляции, по крайней мере, насколько я знаю.

...