Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

No constructor 'FormScreen.' with matching arguments declared in class 'FormScreen'

Depois de fazer a aula onde adicionamos a nova tarefa à tela inicial o app não roda mais, alguém sabe me explicar onde errei, nao estou entendendo mesmo com a descrição do erro!

[](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

meu main.dart

import 'package:flutter/material.dart';
import 'package:organizador_de_tarefas/data/task_inherited.dart';
import 'screens/initial_screen.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: TaskInherited(
        child: const InitialScreen(),
      ),
    );
  }
}

e meu inital_screen.dart

import 'package:flutter/material.dart';
import 'package:organizador_de_tarefas/data/task_inherited.dart';
import 'package:organizador_de_tarefas/screens/form_screen.dart';

class InitialScreen extends StatefulWidget {
  const InitialScreen({super.key});

  @override
  State<InitialScreen> createState() => _InitialScreenState();
}

class _InitialScreenState extends State<InitialScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: Container(),
        title: const Text('Tarefas'),
      ),
      body: ListView(
        children: TaskInherited.of(context).taskList,
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          Navigator.push(
            context,
            MaterialPageRoute(
              builder: (contextNew) => FormScreen(
                taskContext: context,
              ),
            ),
          );
        },
        child: const Icon(Icons.add),
      ),
    );
  }
}

Não consegui identificar como solucionar, se precisar de mais partes do código eu mando

2 respostas
solução!

Olá, João! Vamos resolver esse problema juntos.

O erro que você está enfrentando indica que o construtor da FormScreen está sendo chamado sem os argumentos necessários. Olhando para o seu código, vejo que você está tentando criar uma instância de FormScreen passando um argumento chamado taskContext, mas no erro, parece que o construtor de FormScreen está esperando um Key e outro argumento que não está totalmente visível na mensagem de erro.

Para resolver isso, você precisa verificar a definição do construtor da classe FormScreen no arquivo form_screen.dart. O construtor dessa classe deve estar esperando um ou mais argumentos que você precisa fornecer quando cria a instância.

Por exemplo, se o construtor de FormScreen estiver definido assim:

class FormScreen extends StatelessWidget {
  final BuildContext taskContext;
  final AlgumOutroTipo algumOutroArgumento;

  FormScreen({Key? key, required this.taskContext, required this.algumOutroArgumento}) : super(key: key);

  // ... restante da classe ...
}

Você precisará passar todos os argumentos necessários quando chamar o construtor:

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (contextNew) => FormScreen(
      key: ValueKey('form_screen'), // Se for necessário um Key, você pode passar um aqui
      taskContext: context,
      algumOutroArgumento: valorDoOutroArgumento, // Você precisa passar o valor esperado para este argumento também
    ),
  ),
);

Certifique-se de que todos os argumentos que o construtor de FormScreen está esperando sejam fornecidos e que os tipos dos valores passados correspondam aos tipos esperados pelos parâmetros do construtor.

Se ainda assim não funcionar, você pode precisar compartilhar mais partes do seu código, especialmente a definição da classe FormScreen para que possamos entender melhor o que está acontecendo.

Espero ter ajudado e bons estudos!

Era realmente isso, falta de atenção, esqueci de colocar um "final String" como argumento, obrigado pela ajuda! Não tinha verificado isso

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software