我想将无状态小部件的列表传递给Tasktile,并传递给扩展ChangeNotifier

问题描述

我想将一个无状态Widget的列表传递给Tasktile,并传递给扩展ChangeNotifier的Taskdata类。Taskdata也用作tasktile的第二个消费者参数。 我正在尝试制作生日/周年纪念提醒应用程序。并且还显示了在不同的mont中分隔的生日。所以我需要度过一个月。

import 'dart:collection';
import 'package:wishes_sent/constants.dart';
import 'package:Flutter/material.dart';
import 'package:wishes_sent/data.dart';
import 'tiles.dart';
import 'package:wishes_sent/constants.dart';
import 'package:provider/provider.dart';
import 'package:Flutter/foundation.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

class TaskData extends ChangeNotifier {
  List<Task> month = [];
  TaskData(this.month);

  UnmodifiableListView<Task> get tasks {
    return UnmodifiableListView(month);
  }

  int get taskCount {
    getData();
    return month.length;
  }

  void update() {
    notifyListeners();
  }

  void updateTask(Task task) {
    task.toggleDone();
    notifyListeners();
  }


}

class TasksList extends StatelessWidget {
  List<Task> month;
  TasksList(this.month);// pass this month to taskdata.so i can have 12 different Task list for 12 months
  @override
  Widget build(BuildContext context) {
    return Consumer<TaskData>(
      builder: (context,taskData,child) {
        return ListView.builder(
          itemCount: Provider.of<TaskData>(context).taskCount,itemBuilder: (context,index) {
            final task = taskData.tasks[index];
            return TaskTile(
              update: () {
                taskData.update();
              },fullName: task.fullName,emailID: task.emailID,phoneNo: task.phoneNo,userEmail: task.userEmail,message: task.message,type: task.type,dateE: task.dateE,id: task.id,isVisible: task.isVisible,color: task.color,showMore: () {
                print("LA LA LA Land yo bay yo ");
                taskData.getData();
              },deleteTile: () {
                taskData.deleteTask(task);
              },);
          },);
      },);
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)