【问题标题】:How to resolve "Non-nullable instance field '_controller' must be initialized" error in Flutter/Dart?如何解决 Flutter/Dart 中的“不可为空的实例字段 '_controller' 必须初始化”错误?
【发布时间】:2022-07-19 21:31:56
【问题描述】:

我需要打开一个本地 HTML 文件,我正在尝试使用以下代码:

class HelpScreen extends StatefulWidget {
  const HelpScreen({Key? key}) : super(key: key);

  @override
  State<HelpScreen> createState() => _HelpScreenState();
}

class _HelpScreenState extends State<HelpScreen> {
WebViewController _controller;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Help')),
      body: WebView(
        initialUrl: 'about:blank',
        onWebViewCreated: (WebViewController webViewController) {
          _controller = webViewController;
          _loadHtmlFromAssets();
        },
      ),
    );
  }

  _loadHtmlFromAssets() async {
    String fileText = await rootBundle.loadString('assets/Privacy Policy.html');
    _controller.loadUrl( Uri.dataFromString(
        fileText,
        mimeType: 'text/html',
        encoding: Encoding.getByName('utf-8')
    ).toString());
  }
}

我在互联网上遇到过几次。例如,here

但是当我尝试使用它时,我得到一个错误:

Non-nullable instance field '_controller' must be initialized. (Documentation) Try adding an initializer expression, or a generative constructor that initializes it, or mark it 'late'.

_controller 以红色突出显示并阻止应用程序启动。如何解决?提前致谢。

【问题讨论】:

    标签: flutter dart flutter-layout


    【解决方案1】:

    改变

    WebViewController _controller;
    

    late WebViewController _controller;
    

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 2021-09-29
      • 2023-01-07
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 2021-09-14
      • 2021-09-24
      相关资源
      最近更新 更多