Pular para o conteúdo principal

no_logic_in_create_state

Saiba mais sobre a regra de lint no_logic_in_create_state.

Estável
Flutter
Lançado no Dart 2.8

Não coloque nenhuma lógica em createState.

Detalhes

#

NÃO FAÇA coloque nenhuma lógica em createState().

As implementações de createState() devem retornar uma nova instância de um objeto State e não fazer mais nada. Como o acesso ao estado é preferencialmente feito pelo campo widget, também se deve evitar passar dados para objetos State usando parâmetros de construtor personalizados; por isso, o construtor de State não deve receber argumentos.

RUIM:

dart
MyState global;
​
class MyStateful extends StatefulWidget {
  @override
  MyState createState() {
    global = MyState();
    return global;
  }
}
dart
class MyStateful extends StatefulWidget {
  @override
  MyState createState() => MyState()..field = 42;
}
dart
class MyStateful extends StatefulWidget {
  @override
  MyState createState() => MyState(42);
}

BOM:

dart
class MyStateful extends StatefulWidget {
  @override
  MyState createState() {
    return MyState();
  }
}

Ativar

#

Para ativar a regra no_logic_in_create_state, adicione no_logic_in_create_state em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - no_logic_in_create_state

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione no_logic_in_create_state: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    no_logic_in_create_state: true

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