首页 > 解决方案 > 为什么我不能定义名称'$url'?

问题描述

我试图在 lodfromurl() 函数中使用 $url 但我无法在 lodfromurl() 中定义 $url !你能帮我吗 ?

使用的软件包 flutter_plugin_pdf_viewer

完整的代码是:

import 'package:example/Home/booklist.dart';
import 'package:flutter/material.dart';
import 'package:flutter_plugin_pdf_viewer/flutter_plugin_pdf_viewer.dart';


class PDFViwer extends StatefulWidget {
   final String url;
  PDFViwer({Key key, @required this.url}) : super(key: key);

  @override
  _PDFViwerState createState() => _PDFViwerState();
}

class _PDFViwerState extends State<PDFViwer> {


  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    lodfromurl();

  }
  PDFDocument document;
  bool _isLoading = true;
  lodfromurl()async{
     document = await PDFDocument.fromURL($url);
    setState(() {
      _isLoading = false;
    });
  }
}

标签: flutterdart

解决方案


Url 未在您的状态类中定义,因此您必须使用小部件。访问变量。

import 'package:example/Home/booklist.dart';
import 'package:flutter/material.dart';
import 'package:flutter_plugin_pdf_viewer/flutter_plugin_pdf_viewer.dart';


class PDFViwer extends StatefulWidget {
   final String url;
  PDFViwer({Key key, @required this.url}) : super(key: key);

  @override
  _PDFViwerState createState() => _PDFViwerState();
}

class _PDFViwerState extends State<PDFViwer> {


  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    lodfromurl();

  }
  PDFDocument document;
  bool _isLoading = true;
  lodfromurl()async{
     document = await PDFDocument.fromURL(widget.url);
    setState(() {
      _isLoading = false;
    });
  }
}

推荐阅读