从Future <Directory>函数

所以基本上,我想从名为getTemporaryDirectory()的path_provider函数中检索目录,而我遇到了从名为getDir()的函数返回数据类型的问题,该函数应返回类型Directory变量,但返回动态类型

Directory tempDir;

Future<Directory> dire() async {
  Directory dire = await getTemporaryDirectory(); //!temporary directory 
  return dire;
}
getDir() async {
  Directory dir = await dire();
  return dir;
}

@override
  void initState() {
    tempDir = getDir();
  }

我得到的错误是: “未来(动态)”类型不是“目录”类型的子类型

lvyinkiller 回答:从Future <Directory>函数

您可能要考虑

Directory dir = (await dire()) as Directory;

注意:我对Dart的了解已经严重过时,也许我不应该在SO上回答有关它的问题

,

您最好为getDir指定返回类型:

Future<Directory> getDir() async {

而且您无法等待 initState 中的值,因此必须使用回调:

  @override
  void initState() {
    super.initState();
    getDir().then((v) {
      setState(() {
        tempDir = v;
      });
    });
  }
本文链接:https://www.f2er.com/3129498.html

大家都在问