我只是发现这部分代码在更新颤振后不再起作用。我不明白是什么问题。它以前工作得很好。如果您能帮助我解决此问题,我们将不胜感激。非常感谢。
完整的错误信息是
“无法推断类型参数'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,
);
}
),
),