gpt4 book ai didi

flutter - 参数类型 'Future' 不能分配给参数类型 'List'

转载 作者:行者123 更新时间:2023-12-04 15:57:21 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is a Future and how do I use it?

(4 个回答)


7 个月前关闭。




尝试保存我正在创建的 pdf 文件时出现此错误:

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:path_provider/path_provider.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;

class PrintBarcodeScreen extends StatefulWidget {
@override
_PrintBarcodeScreenState createState() => _PrintBarcodeScreenState();
}

class _PrintBarcodeScreenState extends State<PrintBarcodeScreen> {
var dt = DateTime.now();
final pdf = pw.Document();

generatePdf() {
pdf.addPage(
pw.MultiPage(
pageFormat: PdfPageFormat.a4,
margin: pw.EdgeInsets.all(16),
build: (pw.Context context) {
return <pw.Widget>[
pw.Header(
level: 0,
child: pw.Row(
mainAxisAlignment: pw.MainAxisAlignment.spaceBetween,
children: [
pw.Text(
DateFormat.yMMMEd().format(dt),
textScaleFactor: 2,
// style: getTheme.textTheme.headline6,
),
pw.Text(
DateFormat.jms().format(dt),
// style: getTheme.textTheme.headline6,
),
],
),
),
pw.BarcodeWidget(
barcode: pw.Barcode.gs128(),
color: PdfColor.fromHex("#000000"),
data: '123456789123',
// width: screenSize.width * 0.8,
height: 90,
),
pw.Table.fromTextArray(context: context, data: <List<String>>[
<String>['Year', 'Ipsum', 'Lorem'],
<String>['SN0', 'GFG1'],
<String>['SN1', 'GFG2'],
]),
];
}),
);
}

Future savePdf() async {
Directory documentDirectory = await getApplicationDocumentsDirectory();
String documentPath = documentDirectory.path;
File receiptFile = File("$documentPath/receipt.pdf");
receiptFile.writeAsBytesSync(pdf.save()); // this line is showing error pdf.save() is underlined red
}

@override
Widget build(BuildContext context) {
.........
}

截图: screenshot
在任何地方都找不到太多关于它的信息。对 flutter 还没有多少经验来了解这个错误的深度。我不明白这是数据类型不匹配的情况。我看到 writeAsBytesSync 有 List bytes 参数,可以弄清楚如何将我的 pdf 数据更改为 int。

最佳答案

正如@Nishuthan 所指出的,我们应该使用 await关键字来解决 Future并转换 Uint8ListList<int>通过以下方式:

  Future savePdf() async {
Directory documentDirectory = await getApplicationDocumentsDirectory();
String documentPath = documentDirectory.path;
File receiptFile = File("$documentPath/receipt.pdf");
receiptFile.writeAsBytesSync(List.from(await pdf.save()));
}

关于flutter - 参数类型 'Future<Uint8List>' 不能分配给参数类型 'List<int>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67279594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com