Flutter 错误:NoSuchMethodError:对null调用了方法“[]”。接收方:null尝试呼叫:[](“名称”)

Flutter 错误:NoSuchMethodError:对null调用了方法“[]”。接收方:null尝试呼叫:[](“名称”),flutter,Flutter,我是一名软件开发新手,我正在使用flatter并试图从后端检索文档,但我遇到了一个错误。 下面是我的代码 import 'dart:convert'; import 'dart:io'; import 'package:flutter_downloader/flutter_downloader.dart'; import 'package:get_it/get_it.dart'; import 'package:http/http.dart'; import 'package:path_prov

我是一名软件开发新手,我正在使用flatter并试图从后端检索文档,但我遇到了一个错误。 下面是我的代码

import 'dart:convert';
import 'dart:io';
import 'package:flutter_downloader/flutter_downloader.dart';
import 'package:get_it/get_it.dart';
import 'package:http/http.dart';
import 'package:path_provider/path_provider.dart';

import '../rest_ds.dart';

class DocumentsHandler{

  RestDatasource _restDatasource = GetIt.I<RestDatasource>();

  Future<List<DownloadTask>> getDownloads() async {
    return await FlutterDownloader.loadTasks();
  }

  Future<DownloadTask> getDownloadByName(String filename) async {
    String query = "SELECT * FROM task WHERE file_name = '$filename'";
    List<DownloadTask> downloads = await FlutterDownloader
    .loadTasksWithRawQuery(query: query);

    if(downloads.length > 0){
     return downloads.removeLast();
  }

  return null;
}

 Future<List> getDocumentsOnline() async {
   Response response =  await _restDatasource.getDocuments();
    return jsonDecode(response.body);
}

Future<List<DownloadTask>> loadDocuments() async {
  List onlineDocuments = await getDocumentsOnline();
  Directory externalStorageDirectory = await getExternalStorageDirectory();

 /*onlineDocuments.forEach((document) async {

  });*/

  for(int i = 0; i < onlineDocuments.length; i++){
    var document = onlineDocuments.elementAt(i);
    DownloadTask downloadTask = await getDownloadByName(document["document"]["name"]);
   if( downloadTask == null){
    print("Enqueue");
    await FlutterDownloader.enqueue(
        url: _restDatasource.buildFileDownloadUrl(document["document"]["id"]),
        savedDir: externalStorageDirectory.absolute.path,
        fileName: document["document"]["name"],
        showNotification: true,
        requiresStorageNotLow: false
      );
    }
  }
   return this.getDownloads();
  }
}
下面是我在模拟器上遇到的错误。到底什么是空的,因为我似乎不知道它是什么


请帮忙

检查文档[文档]是否为空,是否确定它是文档[文档][名称]而不是文档[名称]?您应该构建一个DocumentModel来将从API检索到的数据转换为对象。所以你的代码会更一致。@BabC如果我运行document[name],我会得到这个错误。。。错误:包:flatter\u downloader/src/downloader.dart:失败的断言:第152pos 12行:_initialized:flatterdownloader.initialize必须调用first@MidhunMP如何确切地检查文档[文档]是否为空。我对软件开发还是新手,我还没有找到任何包含这些信息的文档。Ronny什么是文档?你打印出来了吗?