[英]DropdownButton - error after updating flutter
我只是发现这部分代码在更新 flutter 后不再工作。 我不明白是什么问题。 它以前工作得很好。 如果您能帮助我解决此问题,我们将不胜感激。 非常感谢。
完整的错误信息是
“无法推断类型参数'T'。
试图为不起作用的“T”推断“动态”:参数“onChanged”声明为“无效函数(T?)?” 但参数是'void Function(Object?)'。 'dynamic' 类型推断自:参数 'items' 声明为 'List<DropdownMenuItem>?' 但参数是'List<DropdownMenuItem>'。 参数“值”声明为“T?” 但论点是“动态的”。
考虑将显式类型参数传递给泛型。
"
Padding(
padding: const EdgeInsets.all(8.0),
child: StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance
.collection('Users')
.doc(FirebaseAuth.instance.currentUser!.uid)
.collection('area_of_Focus')
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData)
const Text("Loading.....");
else {
List<DropdownMenuItem> projectItems = [];
for (int i = 0; i < snapshot.data!.docs.length; i++) {
DocumentSnapshot snap = snapshot.data!.docs[i];
projectItems.add(
DropdownMenuItem(
child: Text(
(snap['area_of_Focus_Name']),
style: TextStyle(color: Colors.black),
),
value: (snap['area_of_Focus_Name']),
),
);}
return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
DropdownButton( //this is where I am having this error
items: projectItems,
onChanged:
(myFocus) {
setState(() {
selectedFocus = myFocus;
_valueAreaOfFocusSaved = myFocus;
// taskNewValue ['area_of_Focus_Name'] = myFocus ;
});
},
value: selectedFocus,
isExpanded: false,
hint: SizedBox(
width: 315.0,
height: 40.0,
child: Text(
projectName,
style: TextStyle(color: Colors.black),
),
),
),
],
);
}
return Container(
height: 0,width: 0,
);
}
),
),
我找到了删除错误消息的解决方案
Padding(
padding: const EdgeInsets.all(8.0),
child: StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance
.collection('Users')
.doc(FirebaseAuth.instance.currentUser!.uid)
.collection('area_of_Focus')
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData)
const Text("Loading.....");
else {
List<DropdownMenuItem> projectItems = [];
for (int i = 0; i < snapshot.data!.docs.length; i++) {
DocumentSnapshot snap = snapshot.data!.docs[i];
projectItems.add(
DropdownMenuItem(
child: Text(
(snap['area_of_Focus_Name']),
style: TextStyle(color: Colors.black),
),
value: (snap['area_of_Focus_Name']),
),
);}
return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
DropdownButton<dynamic> (
items: projectItems,
onChanged:
(myFocus) {
setState(() {
selectedFocus = myFocus;
_valueAreaOfFocusSaved = myFocus;
// taskNewValue ['area_of_Focus_Name'] = myFocus ;
});
},
value: selectedFocus,
isExpanded: false,
hint: SizedBox(
width: 315.0,
height: 40.0,
child: Text(
projectName,
style: TextStyle(color: Colors.black),
),
),
),
],
);
}
return Container(
height: 0,width: 0,
);
}
),
),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.