问题描述
我在调用 Future 函数时遇到了问题,这个函数使用了一个(后期)变量,目标是使用 (PDFViewr)...
问题:
======== Exception caught by widgets library =======================================================
The following LateError was thrown building CourseDetails(dirty,state: _CourseDetailsstate#dac32):
LateInitializationError: Field 'document' has not been initialized.
The relevant error-causing widget was:
CourseDetails file:///E:/cihan_university/mobile_programming/mp/courses_app/lib/main.dart:45:52
When the exception was thrown,this was the stack:
#0 CourseDetailsController.document (package:courses_app/people/controllers/course_details_controller.dart)
#1 _CourseDetailsstate.build (package:courses_app/people/views/course_details.dart:53:72)
#2 StatefulElement.build (package:Flutter/src/widgets/framework.dart:4691:27)
#3 ComponentElement.performRebuild (package:Flutter/src/widgets/framework.dart:4574:15)
#4 StatefulElement.performRebuild (package:Flutter/src/widgets/framework.dart:4746:11)
...
====================================================================================================
这里是控制器的代码:
class CourseDetailsController extends GetxController {
late PDFDocument document;
loadDocument(String url) async {
try {
document = await PDFDocument.fromURL(
url);
} on Exception catch (e) {
print(e);
}
}
并在视图中使用这些控制器:
class _CourseDetailsstate extends State<CourseDetails> {
final details = Get.arguments[1];
final name = Get.arguments[2];
CourseDetailsController courseDetailsController = Get.find();
@override
void initState() {
courseDetailsController.loadDocument(details).whenComplete((){
setState(() {});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Flexible(
child:
Container(
child: PDFViewer(document: courseDetailsController.document,)
),
我知道问题来自(异步)所以需要一些时间然后向我展示pdf没有任何问题:所以我使用了上面的代码:
@override
void initState() {
courseDetailsController.loadDocument(details).whenComplete((){
setState(() {});
});
super.initState();
}
我还看到错误消息几秒钟,然后显示 pdf>>>> 我一直在使用 (GetX),那么我该如何解决这个问题呢? ,或者在Getx中是否有更好的方法?谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)