Flutter 错误:NoSuchMethodError:对null调用了方法“[]”。接收方:null尝试呼叫:[](“名称”)
我是一名软件开发新手,我正在使用flatter并试图从后端检索文档,但我遇到了一个错误。 下面是我的代码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
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什么是文档?你打印出来了吗?