[英]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.