dart 无法将参数类型“Uint8List”分配给参数类型“File”

1qczuiv0  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(117)

[The无法将参数类型“Uint 8List”分配给参数类型“File”。dartargument_type_not_assignable Uint 8List?字节类型:Uint8List?]
参考图像-(https://i.stack.imgur.com/iSbTP.png
我的代码:

IconButton(
    onPressed: () async {
        Uint8List? bytes = await screenshotController.capture();
        imageProvider.changeImage(bytes!);
        if (!mounted) return;
        Navigator.of(context).pop();

        },
        icon: const Icon(Icons.done),
)

有人能建议如何解决这个错误吗?我是一个初学者
我尝试通过空检查将字节作为参数传递,但这不起作用

https://www.youtube.com/watch?v=qXU5o8v4DX0&ab_channel=KODDev

我是编码后,这yt视频。它似乎对他有效(时间戳- 52:25),但对我无效。

gmxoilav

gmxoilav1#

你好,你需要将Uint8List转换为文件,然后将其传递给IconButton。

Future<void> saveImage(Uint8List bytes) async {
  Directory appDocDir = await getApplicationDocumentsDirectory();
  String filePath = '${appDocDir.path}/temp_image.png';
  File tempFile = File(filePath);

  await tempFile.writeAsBytes(bytes);

  // Now, you can use tempFile as a File
  imageProvider.changeImage(tempFile);

  if (!mounted) return;
  Navigator.of(context).pop();
}

// Inside your IconButton's onPressed callback
Uint8List? bytes = await screenshotController.capture();
await saveImage(bytes!);

Kellil胺

相关问题