不能无条件调用方法“[]”,因为接收者可以是 'null'。 (扑)
The method '[]' can't be unconditionally invoked because the receiver can be 'null'. (flutter)
我正在使用带有两个下载的 FutureBuilder,并将每个索引放入一个列表,以便 load/show 它们在我的应用程序中。空安全有一个错误:
无法无条件调用方法“[]”,因为接收者可以是 'null'。
尝试使调用有条件(使用“?.”)或向目标添加空检查(“!”)。
如何解决快照 (snapshot.data[0]) 中的这个错误?感谢您的帮助。
FutureBuilder(
future: Future.wait([downloadsuche(), downloadsuchvorschlag()]),
builder: (context, snapshot) {
if (snapshot.hasData) {
//List<AdressSuche> adresse = snapshot.data;
List<AdressSuche> adresse = snapshot.data[0];
List<AdressSuche> sv1 = snapshot.data[1];
return IconButton(
icon: const Icon(Icons.search),
onPressed: () {
showSearch(context: context, delegate: DataSearch(adresse, sv1));
},
);
} else if (snapshot.hasError) {
return IconButton(icon: const Icon(Icons.search), onPressed: () {});
//return RefreshIndicator(onRefresh: _refreshdata, child: Center(child: CircularProgressIndicator()));
}
return IconButton(icon: const Icon(Icons.search), onPressed: () {});
},
),
替换
List<AdressSuche> adresse = snapshot.data[0];
List<AdressSuche> sv1 = snapshot.data[1];
和
var adresse = (snapshot.data as List)[0] as List<AdressSuche>;
var sv1 = (snapshot.data as List)[1] as List<AdressSuche>;
替换
List<AdressSuche> adresse = snapshot.data[0];
List<AdressSuche> sv1 = snapshot.data[1];
有
var list = snapshot.data! as List;
List<dynamic> adresse = list[0];
List<dynamic> sv1 = list[1];
只需添加“!”在 snapshot.data 之后,因为 snapshot.data 可能为空。
FutureBuilder(
future: Future.wait([downloadsuche(), downloadsuchvorschlag()]),
builder: (context, snapshot) {
if (snapshot.hasData) {
//List<AdressSuche> adresse = snapshot.data!;
List<AdressSuche> adresse = snapshot.data![0]; //add '!' over here
List<AdressSuche> sv1 = snapshot.data![1]; // and here
return IconButton(
icon: const Icon(Icons.search),
onPressed: () {
showSearch(context: context, delegate: DataSearch(adresse, sv1));
},
);
} else if (snapshot.hasError) {
return IconButton(icon: const Icon(Icons.search), onPressed: () {});
//return RefreshIndicator(onRefresh: _refreshdata, child: Center(child: CircularProgressIndicator()));
}
return IconButton(icon: const Icon(Icons.search), onPressed: () {});
},
),
我正在使用带有两个下载的 FutureBuilder,并将每个索引放入一个列表,以便 load/show 它们在我的应用程序中。空安全有一个错误:
无法无条件调用方法“[]”,因为接收者可以是 'null'。
尝试使调用有条件(使用“?.”)或向目标添加空检查(“!”)。
如何解决快照 (snapshot.data[0]) 中的这个错误?感谢您的帮助。
FutureBuilder(
future: Future.wait([downloadsuche(), downloadsuchvorschlag()]),
builder: (context, snapshot) {
if (snapshot.hasData) {
//List<AdressSuche> adresse = snapshot.data;
List<AdressSuche> adresse = snapshot.data[0];
List<AdressSuche> sv1 = snapshot.data[1];
return IconButton(
icon: const Icon(Icons.search),
onPressed: () {
showSearch(context: context, delegate: DataSearch(adresse, sv1));
},
);
} else if (snapshot.hasError) {
return IconButton(icon: const Icon(Icons.search), onPressed: () {});
//return RefreshIndicator(onRefresh: _refreshdata, child: Center(child: CircularProgressIndicator()));
}
return IconButton(icon: const Icon(Icons.search), onPressed: () {});
},
),
替换
List<AdressSuche> adresse = snapshot.data[0];
List<AdressSuche> sv1 = snapshot.data[1];
和
var adresse = (snapshot.data as List)[0] as List<AdressSuche>;
var sv1 = (snapshot.data as List)[1] as List<AdressSuche>;
替换
List<AdressSuche> adresse = snapshot.data[0];
List<AdressSuche> sv1 = snapshot.data[1];
有
var list = snapshot.data! as List;
List<dynamic> adresse = list[0];
List<dynamic> sv1 = list[1];
只需添加“!”在 snapshot.data 之后,因为 snapshot.data 可能为空。
FutureBuilder(
future: Future.wait([downloadsuche(), downloadsuchvorschlag()]),
builder: (context, snapshot) {
if (snapshot.hasData) {
//List<AdressSuche> adresse = snapshot.data!;
List<AdressSuche> adresse = snapshot.data![0]; //add '!' over here
List<AdressSuche> sv1 = snapshot.data![1]; // and here
return IconButton(
icon: const Icon(Icons.search),
onPressed: () {
showSearch(context: context, delegate: DataSearch(adresse, sv1));
},
);
} else if (snapshot.hasError) {
return IconButton(icon: const Icon(Icons.search), onPressed: () {});
//return RefreshIndicator(onRefresh: _refreshdata, child: Center(child: CircularProgressIndicator()));
}
return IconButton(icon: const Icon(Icons.search), onPressed: () {});
},
),