flutter 错误:无法将参数类型“BuildContext”分配给参数类型“String”

cdmah0mi  于 2023-03-24  发布在  Flutter
关注(0)|答案(3)|浏览(122)

你好,我想问一下。为什么会发生这个错误?有人能帮我吗?错误代码参数类型“BuildContext”无法分配给参数类型“String”。
代码:

Widget recentFileButton(
            BuildContext context,
            String fileName,
            String fileURL,
            String thumbnailImageName,
            String fileFrom,
            String timestamp,
            String documentID,
            String fileNotes) =>
        Container(
          margin: const EdgeInsets.only(bottom: 10),
          child: Row(
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              getPreview(fileURL, fileNotes),
              const SizedBox(width: 10),
              Expanded(
                child: InkWell(
                  onTap: () async {
                    bool _isEmwatch = false;
                    if (fileNotes == "referral letter") {
                      var uri = Uri.parse(fileURL);
                      var uuid = uri.queryParameters['uuid'];
                      var result = await DocumentRepository()
                          .doctorGetPatientReferralByUID(uuid!);
                      if (result.responseMap.clinicUID ==
                          "") {
                        _isEmwatch = true;
                      }
                      if (result.responseMap.clinicUID ==
                          "") {
                        _isEmwatch = true;
                      }
    
                      // generate and preview
                      var doc = await generateDocument(PdfPageFormat.standard,
                          result.responseMap, '', _isEmwatch);
    
                      Navigator.push(
                        context,
                        MaterialPageRoute(
                            builder: (context) => PdfPreviewPage(pdfDoc: doc)),
                      );
                    } else {
                      openDocument(context, fileURL);
                    }
                  },
                   ),
                    ],
                  ),
                ),
              ),
              const SizedBox(width: 10),
              Align(
                alignment: Alignment.topRight,
                child: IconButton(
                  icon: const Icon(
                    Icons.more_vert,
                    color: Color(0xFF021522),
                  ),
                  onPressed: () => showFileActionBottomSheet(
                      context, fileName, fileURL, documentID, fileNotes),
                ),
              )
            ],
          ),
        );

我不知道如何解决这个问题。请指导我和任何愿意帮助我解决这个问题的人。谢谢。

htzpubme

htzpubme1#

你的方法openDocument需要一个String,你将BuildContext传递给它。

xpszyzbs

xpszyzbs2#

这个错误基本上意味着openDocument在请求String,而您正在向它传递BuildContext。
根据它的文档,您可以像下面这样调用openDocument

openDocument(filePath: fileURL);

https://pub.dev/packages/open_document

nzk0hqpo

nzk0hqpo3#

除了上面的答案,你可以检查方法的参数,如果移动鼠标光标到方法,如果你使用VsCode和安装,flutter和dart扩展。这适用于所有方法,
1.你写的那本。
1.内置方法。
1.封装方法。
此外,在类上工作,还有另一种方法是(ctrl+鼠标左键单击)在(方法,类等)的名称上。

相关问题