undefined_ instance_ member_ write
Detalhes sobre o diagnóstico 'undefined_instance_member_write' produzido pelo analisador do Dart.
The field '{0}' of the type '{1}' is final, so it can't be assigned to.
The member '{0}' is declared in '{1}', but private names are visible only in their own library.
The setter '{0}' isn't defined for the type '{1}'.
The {0} '{1}' of the type '{2}' can't be assigned to.
There's a getter '{0}' for the type '{1}', but no setter.
Descrição
#O analisador emite este diagnóstico quando um membro de instância recebe uma atribuição, mas nem o tipo estático do receptor nem nenhuma extensão aplicável possui um setter ou campo não final acessível com esse nome.
Exemplos
#
O código a seguir produz este diagnóstico porque C não possui um setter
chamado z:
class C {
int x = 0;
}
void f(C c) {
c.z = 0;
}
O código a seguir produz este diagnóstico porque C tem apenas um getter
chamado x:
class C {
int get x => 0;
}
void f(C c) {
c.x = 0;
}
O código a seguir produz este diagnóstico porque o campo x é final:
class C {
final int x = 0;
}
void f(C c) {
c.x = 0;
}
Correções comuns
#Se o setter que você pretende usar tiver outro nome, altere o nome para corresponder:
class C {
int x = 0;
}
void f(C c) {
c.x = 0;
}
Se o setter for declarado em uma extensão que não foi importada, importe a biblioteca que declara a extensão.
Se o tipo tiver apenas um getter, adicione um setter com o mesmo nome:
class C {
int get x => 0;
set x(int _) {}
}
void f(C c) {
c.x = 0;
}
Se o campo for final, torne-o não final:
class C {
int x = 0;
}
void f(C c) {
c.x = 0;
}
Caso contrário, remova a atribuição.
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.