Pular para o conteúdo principal

no_logic_in_create_state

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

Don't put any logic in 'createState'.

Descrição

#

O analisador emite este diagnóstico quando uma implementação de createState em uma subclasse de StatefulWidget contém qualquer lógica além de retornar o resultado da invocação de um construtor sem argumentos.

Exemplos

#

O código a seguir gera este diagnóstico porque a invocação do construtor tem argumentos:

dart
import 'package:flutter/material.dart';
​
class const MyWidget({super.key}) extends StatefulWidget {
  @override
  MyState createState() => MyState(0);
}
​
class MyState extends State {
  int x;
​
  MyState(this.x);
​
  @override
  Widget build(BuildContext context) => MyWidget();
}

Correções comuns

#

Reescreva o código para que createState não contenha nenhuma lógica:

dart
import 'package:flutter/material.dart';
​
class const MyWidget({super.key}) extends StatefulWidget {
  @override
  MyState createState() => MyState();
}
​
class MyState extends State {
  int x = 0;
​
  MyState();
​
  @override
  Widget build(BuildContext context) => MyWidget();
}

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