heloo,我想创建一个带有列表图像的 pdf 文件。当我运行我的按钮代码时,我收到错误消息发生异常。 _TypeError(类型“Future”不是类型“Uint8List”的子类型)。
我的按钮:
ButtonWidget(
text: 'Export PDF',
onClicked: () async {
final pdfFile = await ExportPdfApi.generateMyPDF();
ExportPdfApi.openFile(pdfFile);
},
),
函数获取图像:
static viewImage(image) async {
print("print $image");
final imageJpg1 = (await NetworkAssetBundle(Uri.parse(image)).load(image))
.buffer
.asUint8List();
print("print $imageJpg1");
return imageJpg1;
}
我的 pdf 中的列表视图:
ListView.builder(
itemCount: _listAnggotaController.dataList.length,
itemBuilder: (context, index) {
return ClipRRect(
horizontalRadius: 32,
verticalRadius: 32,
child: Image(
MemoryImage(viewImage(
_listAnggotaController.dataList[index].idGambar)),
height: 100,
),
);
}),
请帮助我解决问题。 谢谢。
答案 0 :(得分:0)
首先Flutter在异步函数未完成时返回一个Future,完成时返回type类型的数据。您犯的错误是从同步函数调用异步函数。尽管 dart 将异步执行函数(您可以通过从异步函数打印 imageJpg1 来验证这一点)。 但是你调用它的地方不是在等待异步函数完成。
我建议使用 FutureBuilder。
我希望现在清楚了。 欲了解更多信息,请访问 Asynchronous Programming