首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用API的异步列表类型后,文件列表变量类型重置

调用API的异步列表类型后,文件列表变量类型重置
EN

Stack Overflow用户
提问于 2021-12-07 10:58:38
回答 1查看 31关注 0票数 0

我将文件列表传递给函数。调用DB后,文件变量列表重置。API返回类型是List。而且没有办法从另一种方式重新设置attachFiles

这是我的函数

代码语言:javascript
复制
   List<File> attachFiles = [];

  Future postRequest(BuildContext context, PostModel postModel) async {
    List<RequirementModel> requirements = [];
    attachFiles = postModel.fileNotifierValues;
    print('attach files-1 : ${attachFiles?.length}');
    requirements = List.from(await db.checkRequirement(postModel.customerId, postModel.subCategory.subCategoryId));
    print('attach files-2 : ${attachFiles?.length}');
...
}

输出结果

代码语言:javascript
复制
attach files-1 : 1
attach files-2 : 0

checkRequirement函数

代码语言:javascript
复制
  Future<List<RequirementModel>> checkRequirement(String uid, String subId) async {
    var ref = _db
        .collection('requirement')
        .where('status', isEqualTo: 'Active')
        .where('customerId', isEqualTo: uid)
        .where('subCategory.id', isEqualTo: subId);

    List<RequirementModel> model = await ref.get().then((list) => list.docs.map((doc) => RequirementModel.fromForestore(doc)).toList());
    if ((model?.length ?? 0) != 0) {
      model.removeWhere((element) => element.enquiryPrivate == true);
      model.removeWhere((element) => element.isPromoInquiry == true);
      return model;
    } else {
      return [];
    }
  }

颤振医生-v

颤振(海峡稳定,2.5.3,macOS 12.0.1 21A559达尔文-x64,locale en-LK)·颤振版本2.5.3 at /Users/bhanukaisuru/dev/flutter·Upstream存储库https://github.com/flutter/flutter.git·框架修订版18116933e7 (8周前),2021-10-15 10:46:35 -0700·引擎修订d3ea636dc5·Dart版本2.14.4 Android工具链-为Android设备开发(AndroidSDKVersion30.0.3)·Android at /User/bhanukaisuru/Library/ Android / SDK·Platform android-31,build 30.0.3·Java : /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java·OpenJDK版本OpenJDK运行时环境(Build11.0.10+0-B96-7281165)·所有✓许可证接受。 为iOS和macOS·Xcode开发/✓/xcode.app/Content/Developer·Xcode 13.1,构建版本13A1030d·CocoaPods版本1.11.2 ✓Chrome -为网页开发. Chrome /Applications/GoogleChrome.app/Content/MacOS/Google Android (2020.3版)·Android at /Applications/AndroidStudio.app/Content·Dart插件可以从以下位置安装:https://plugins.jetbrains.com/plugin/9212-flutter·Dart插件可以从:https://plugins.jetbrains.com/plugin/6351-dart·(Build11.0.10+0-B96-7281165)安装 ✓VS Code (版本1.62.3)·VS代码at /Applications/VisualStudioCode.app/Content·颤振扩展版本3.29.0 LX2 (移动)·6MU7N17A12000618·Android -API 64·Android8.0.0 (API 26)·Chrome (web)·chrome·web-javascript·Google 96.0.4664.55 没有发现任何问题!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-07 13:22:50

这是达特语言的问题。我把我的代码改成这个。现在一切都好了。

从…

代码语言:javascript
复制
attachFiles = postModel.fileNotifierValue;

到这个

代码语言:javascript
复制
attachFiles = List.from(postModel.fileNotifierValue ?? []);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70258943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档