在此 TasksScreenNew 小部件上方找不到正确的 Provider<TaskData>

Could not find the correct Provider<TaskData> above this TasksScreenNew Widget

我在使用 Flutter Provider 时遇到问题...每次当我单击将我带到任务屏幕的小部件时,我都会收到此错误。我真的是 Provider 的新手...从教程中获得了该代码。我现在被这个错误困扰了 1 小时,但我还没有找到适合我的问题的东西。

如果您需要更多代码,请说出来

错误:

ProviderNotFoundException (Error: Could not find the correct Provider<TaskData> above this TasksScreenNew Widget


代码:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:learnon/widgets/tasks_list.dart';
import 'package:learnon/screens/addtasksscreen.dart';
import 'package:learnon/models/tasks_data.dart';
import 'package:provider/provider.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';

bool theme = false;
FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
    FlutterLocalNotificationsPlugin();

class TasksScreenNew extends StatelessWidget {
  static const routeName = "/tasksnewwidget";
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.blueAccent,
      floatingActionButton: FloatingActionButton(
        heroTag: null,
        child: Icon(Icons.add),
        backgroundColor: Colors.lightBlue,
        onPressed: () {
          showModalBottomSheet(
              isScrollControlled: true,
              context: context,
              builder: (BuildContext context) => AddTaskScreen());
        },
      ),
      body: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
        Container(
          padding: EdgeInsets.only(top: 60, left: 30, right: 30, bottom: 30),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              SizedBox(
                height: 10,
              ),
              Text(
                'Todo',
                style: TextStyle(
                    color: Colors.white,
                    fontSize: 50,
                    fontWeight: FontWeight.bold),
              ),
              Text(
                '${Provider.of<TaskData>(context).taskCount} Tasks',
                style: TextStyle(fontSize: 18, color: Colors.white),
              ),
            ],
          ),
        ),
        Expanded(
          child: Container(
            padding: EdgeInsets.symmetric(horizontal: 20),
            child: TasksList(),
            decoration: BoxDecoration(
              borderRadius: BorderRadius.only(
                topLeft: Radius.circular(20),
                topRight: Radius.circular(20),
              ),
            ),
          ),
        )
      ]),
    );
  }
}
// CircleAvatar(
// radius: 30,
// backgroundColor: Colors.white,
// child: Icon(
// Icons.list,
// color: Colors.blueAccent,
// size: 30,
// ),
// )

要从上下文访问提供程序,您需要将任何小部件包装在 ProviderChangeNotifierProvider 中更高层的树中。

您可以尝试在当前页面执行以下操作。

Widget build(BuildContext context) {
  return ChangeNotifierProvider<TaskData>(
    create: (_) => TaskData(),
    builder: (context, __) => Scaffold(

您还可以查看示例,例如这里 https://docs.flutter.dev/development/data-and-backend/state-mgmt/simple