Pular para o conteúdo principal

initializing_formal_for_non_existent_field

Detalhes sobre o diagnóstico 'initializing_formal_for_non_existent_field' produzido pelo analisador do Dart.

'{0}' isn't a field in the enclosing class.

Descrição

#

O analisador produz este diagnóstico quando um parâmetro formal de inicialização é encontrado em um construtor de uma classe que não declara o campo que está sendo inicializado. Construtores não podem inicializar campos que não foram declarados nem campos herdados de superclasses.

Exemplo

#

O código a seguir produz este diagnóstico porque o campo x não está definido:

dart
class C {
  int? y;
​
  C(this.x);
}

Correções comuns

#

Se o nome do campo estava errado, então altere-o para o nome de um campo existente:

dart
class C {
  int? y;
​
  C(this.y);
}

Se o nome do campo está correto, mas ainda não foi definido, então declare o campo:

dart
class C {
  int? x;
  int? y;
​
  C(this.x);
}

Se o parâmetro é necessário, mas não deve inicializar um campo, então transforme-o em um parâmetro normal e use-o:

dart
class C {
  int y;
​
  C(int x) : y = x * 2;
}

Se o parâmetro não for necessário, então remova-o:

dart
class C {
  int? y;
​
  C();
}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.