Pular para o conteúdo principal

instance_member_access_from_factory

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

Instance members can't be accessed from a factory constructor.

Descrição

#

O analisador produz este diagnóstico quando um construtor de fábrica contém uma referência não qualificada a um membro de instância. Em um construtor generativo, a instância da classe é criada e inicializada antes da execução do corpo do construtor, então a instância pode ser associada a this e acessada da mesma forma que em um método de instância. Mas, em um construtor de fábrica, a instância não é criada antes da execução do corpo, então this não pode ser usado para referenciá-la.

Exemplo

#

O código a seguir produz este diagnóstico porque x não está no escopo do construtor de fábrica:

dart
class C {
  int x;
  factory C() {
    return C._(x);
  }
  C._(this.x);
}

Correções comuns

#

Reescreva o código para que ele não referencie o membro de instância:

dart
class C {
  int x;
  factory C() {
    return C._(0);
  }
  C._(this.x);
}

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ê.