2

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,
              ),
            );
          }),

请帮助我的问题。谢谢你。

4

1 回答 1

0

首先,Flutter 在异步函数没有完成的时候返回一个 Future,完成后会返回 type 类型的数据。您犯的错误是从同步函数调用异步。尽管 dart 将异步执行函数(您可以通过从异步函数打印 imageJpg1 来验证这一点)。但是您调用它的地方不是等待异步函数完成。

我建议使用FutureBuilder

我希望现在很清楚。为了更清楚,请访问异步编程

于 2021-06-20T04:01:43.430 回答