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

[Dúvida] Finalizando o projeto

Erro no task_inherited, no video não fala como resolver, porem não sei como resolver este erro.

Desde já agradeço.


import 'package:alura_flutter_curso_1/components/tasks.dart';
import 'package:flutter/material.dart';

class TaskInherited extends InheritedWidget {//para passar dados entre telas.
  TaskInherited({
    Key? key,
    required Widget child,
  }) : super(key: key, child: child);

  final List<Tasks> taskList = [//pegamos as tarefas da tela inicial(initial scren).
  Tasks('Estudar Flutter', 'assets/images/flutter.png', 3),
  Tasks('Andar de Bike', 'assets/images/bike.webp', 2),
  Tasks('Ler 50 páginas', 'assets/images/ler.jpg', 4),
  Tasks('Meditar', 'assets/images/meditar.jpeg', 5),
  Tasks('Jogar', 'assets/images/jogar.jpg', 1,),
  ];//lista

  void newTask(String name, String photo, int difficulty){//função para adicionar uma nova tarefa na nossa lista
    taskList.add(Tasks(name, photo, difficulty));
  }
  static  of(BuildContext context) {
    final ? result = context.dependOnInheritedWidgetOfExactType<>();
    assert(result != null, 'No  found in context');
    return result!;
  }

  @override
  bool updateShouldNotify(TaskInherited oldWidget) {//quem fica de olho no stado na nossa informação no caso lista de tarefas
    return oldWidget.taskList.length != taskList.length;//simbolo != significa diferente
  }
}
3 respostas

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O erro se dá nessa parte. Não sei se pode ser um bug.

solução!

Acho que tu acabou comendo uma parte do código, dá uma olhadinha em como devia ser:

class TaskInherited extends InheritedWidget {
  TaskInherited({
    Key? key,
    required Widget child,
  }) : super(key: key, child: child);

  final List<Task> taskList = [
    Task('Aprender Flutter', 'assets/images/dash.png', 3),
    Task('Andar de Bike', 'assets/images/bike.webp', 2),
    Task('Meditar', 'assets/images/meditar.jpeg', 5),
    Task('Ler', 'assets/images/livro.jpg', 4),
    Task('Jogar', 'assets/images/jogar.jpg', 1),
  ];

  void newTask(String name, String photo,int difficulty){
    taskList.add(Task(name, photo, difficulty));
  }

  static TaskInherited of(BuildContext context) {
    final TaskInherited? result =
        context.dependOnInheritedWidgetOfExactType<TaskInherited>();
    assert(result != null, 'No TaskInherited found in context');
    return result!;
  }

  @override
  bool updateShouldNotify(TaskInherited oldWidget) {
    return oldWidget.taskList.length != taskList.length;
  }
}

Muito obrigada, verifiquei e ficou faltando estes mesmo. Solucionou o erro do meu código.