1
resposta

[Bug] switch não reconhace snapshot.connectionState. Erros abaixo

Insira aqui a descrição dessa imagem para ajudar na acessibilidade esses são os erros que aparecem no run lib/screens/initial_screen.dart:34:33: Error: The argument type 'Future<List<Task/1*/>>' can't be assigned to the parameter type 'Future<List<Task/2*/>>?'.

  • 'Future' is from 'dart:async'.
  • 'List' is from 'dart:core'.
  • 'Task/1/' is from 'package:emulador_flutter/components/task.dart' ('lib/components/task.dart').
  • 'Task/2/' is from 'package:emulador_flutter/components//task.dart' ('lib/components//task.dart').
           future: TaskDao().findAll(),
                             ^
    lib/screens/initial_screen.dart:37:33: Error: The type 'ConnectionState' is not exhaustively matched by the switch cases since it doesn't match 'ConnectionState.none'.
  • 'ConnectionState' is from 'package:flutter/src/widgets/async.dart' ('../../Documents/flutter_windows_3.7.10-stable/flutter/packages/flutter/lib/src/widgets/async.dart'). Try adding a default case or cases that match 'ConnectionState.none'.
             switch(snapshot.connectionState){
                             ^
    Target kernel_snapshot failed: Exception

FAILURE: Build failed with an exception.

  • Where: Script 'C:\Users\marlo\Documents\flutter_windows_3.7.10-stable\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1159

  • What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'.

    Process 'command 'C:\Users\marlo\Documents\flutter_windows_3.7.10-stable\flutter\bin\flutter.bat'' finished with non-zero exit value 1

  • Try:

    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 30s Exception: Gradle task assembleDebug failed with exit code 1

1 resposta

Oi Marlon, tudo bem?

Pelo que entendi, você está enfrentando alguns erros relacionados ao uso do switch e ao tipo de retorno de uma função em seu código. Vamos tentar resolver isso!

O primeiro erro que aparece é relacionado ao tipo de retorno da função TaskDao().findAll(). Parece que o tipo retornado é Future<List<Task>>, enquanto o parâmetro espera um Future<List<Task>?>. Para corrigir isso, você pode adicionar um operador de asserção de tipo (as) para garantir que o tipo seja compatível. Por exemplo:

future: TaskDao().findAll() as Future<List<Task>?>,

Isso deve resolver o primeiro erro.

O segundo erro está relacionado ao uso do switch com snapshot.connectionState. Parece que o switch não está considerando todos os possíveis valores de ConnectionState, incluindo ConnectionState.none. Para corrigir isso, você pode adicionar um caso padrão (default) ao switch ou adicionar casos para todos os valores possíveis de ConnectionState. Por exemplo:

switch (snapshot.connectionState) {
  case ConnectionState.none:
    // Faça algo quando a conexão for nula
    break;
  case ConnectionState.waiting:
    // Faça algo enquanto aguarda a conexão
    break;
  case ConnectionState.active:
    // Faça algo quando a conexão estiver ativa
    break;
  case ConnectionState.done:
    // Faça algo quando a conexão estiver concluída
    break;
  default:
    // Faça algo como caso padrão
    break;
}

Dessa forma, você garante que todos os valores possíveis de ConnectionState sejam considerados no switch.

Quanto ao último erro relacionado ao Gradle, pode ser necessário executar o comando com a opção --stacktrace para obter mais informações sobre o erro. Por exemplo:

flutter run --stacktrace

Isso pode fornecer informações adicionais que podem ajudar a identificar a causa do erro.

Espero que essas sugestões possam ajudar a resolver os problemas em seu código.

Um abraço e bons estudos.