我正在开发 Flutter 2.2.1(通道稳定)。我最近将 SDK 的环境从 2.7.0 更改为 2.12.0 以添加插件,但我的代码中出现了很多错误。其中之一是关于单选按钮列表的。
我的代码:
ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: languages.length,
itemBuilder: (ctx, index) {
return RadioListTile(
title: Row(
children: [
Image.asset(
'icons/flags/png/${languages[index]['flag']}.png',
package: 'country_icons',
height: 16,
),
Text(' ' + languages[index]['language']),
],
),
value: languages[index]['code'],
groupValue: widget.languageChosen,
onChanged: (_languageSelected) {
setState(() {
_languageChosen = _languageSelected;
widget.onLanguageChange!(_languageChosen);
});
},
);
}),
Run Code Online (Sandbox Code Playgroud)
该错误与“RadioListTile”有关,消息是:
无法推断类型参数“T”。
试图推断“T”的“动态”,但这不起作用:参数“onChanged”声明为“void Function(T?)?” 但参数是“void Function(Object?)”。类型“dynamic”是从以下位置推断出来的:参数“value”声明为“T”,但参数为“dynamic”。参数“groupValue”声明为“T?” 但论证是“动态的”。
考虑将显式类型参数传递给泛型。
我在该行收到另一个关于“_languageSelected”的错误错误_languageChosen = _languageSelected;是:
“对象?”类型的值 不能分配给“String”类型的变量。尝试更改变量的类型,或将右侧类型转换为“String”。
但我不知道这两个错误是否有关联。
我正在开发 Flutter 2.2.1(通道稳定)。我最近将 SDK 的环境从 2.7.0 更改为 2.12.0 ( sdk: ">=2.12.0 <3.0.0") 以添加插件,但出现了很多错误(尤其是有关null safety 的错误)。其中之一是关于从 firestore 中提取数据(我正在使用cloud_firestore: ^2.2.1)。
我的代码:
StreamBuilder(
stream: FirebaseFirestore.instance
.collection('towns/${widget.townId}/beacons')
.orderBy('monument')
.snapshots(),
builder: (ctx, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting)
return CircularProgressIndicator();
final beacons = snapshot.data!.docs; // Error here
return ListView.builder(
physics:
NeverScrollableScrollPhysics(),
shrinkWrap:
true,
itemCount: beacons.length,
itemBuilder: (ctx, index) {
if (beacons[index]['visibility'] == true) {
return BeaconCard(
title: beacons[index]['title'],
monument: beacons[index]['monument'],
image: beacons[index]['image'],
duration: beacons[index]['duration'],
distance: 0,
townId: widget.townId,
uuid: beacons[index]['uuid'], …Run Code Online (Sandbox Code Playgroud)