【发布时间】:2021-09-23 10:49:21
【问题描述】:
我创建了一个provider 来传递WidgetTree 中的值,但是当我尝试检索该值时,它给了我null 作为它的值。
初始化Provider的值:
GetCurrentCourse course = GetCurrentCourse();
course.currentCourse(
courseID: courseID,
courseDocID: courseDocID,
);
下面是Provider相关的代码:
import 'package:flutter/material.dart';
class GetCurrentCourse extends ChangeNotifier {
String? currentCourseID;
String? currentCourseDocID;
void currentCourse({courseID, courseDocID}) {
this.currentCourseDocID = courseDocID;
this.currentCourseID = courseID;
print("Current Course ID is ${this.currentCourseID}");
print("Current Course Doc ID is ${this.currentCourseDocID}");
notifyListeners();
}
}
当我打印上述GetCurrentCourse 类中的值时。我确实看到打印了正确的值。
以下代码展示了main.dart 文件中定义的Provider,如下所示:
ChangeNotifierProvider<GetCurrentCourse>(
create: (_) => GetCurrentCourse(),
),
下面是我尝试使用GetCurrentCourse Provider 的代码:
class CoursePageBody extends StatelessWidget {
@override
Widget build(BuildContext context) {
print("Printing Value of Course from Provider");
print(Provider.of<GetCurrentCourse>(context).currentCourseDocID);
.
.
}
}
现在,当我尝试访问 Provider 的值并尝试打印它时。它打印null。
我可以尝试解决什么问题?
【问题讨论】:
-
您能分享一下您插入提供程序的位置吗?
标签: flutter dart flutter-dependencies flutter-provider