【问题标题】:Flutter create a Utility class but async function cannot be calledFlutter创建一个Utility类但无法调用异步函数
【发布时间】:2019-02-27 18:15:14
【问题描述】:

我的颤振应用程序创建了一个实用程序类,并希望在不同的文件/页面中使用实用程序类的功能。但是 Utility 类的异步函数不能在其他文件中调用。请帮忙解决这个问题。

import 'package:flutter/material.dart';
import 'package:connectivity/connectivity.dart';
import 'dart:async';

class Utility {

  ConnectivityResult connectivityResult;

  Future<bool> checkConnection() async{
    connectivityResult = await (new Connectivity().checkConnectivity());

    if ((connectivityResult == ConnectivityResult.mobile) || (connectivityResult == ConnectivityResult.wifi)){
      return true;
    } else {
      return false;
    }
  }

  static void showAlert(BuildContext context, String text) {
    var alert = new AlertDialog(
      content: Container(
        child: Row(
          children: <Widget>[Text(text)],
        ),
      ),
      actions: <Widget>[
        new FlatButton(
            onPressed: () => Navigator.pop(context),
            child: Text(
              "OK",
              style: TextStyle(color: Colors.white),
            ))
      ],
    );

    showDialog(
        context: context,
        builder: (_) {
          return alert;
        });
  }
}

【问题讨论】:

    标签: asynchronous dart flutter


    【解决方案1】:

    在你的函数上使用static关键字

    static Future&lt;bool&gt; checkConnection()

    或实例化你的实用程序类

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-10
      • 2021-07-07
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 2021-12-25
      相关资源
      最近更新 更多