- 我正在嘗試在 IconData 和 Icon Color 中添加 switch case 陳述句,當我使用它們時會拋出一些錯誤
- 必須先分配不可為空的區域變數“iconData”,然后才能使用它。嘗試給它一個初始化運算式,或者確保在每個執行路徑上都分配了它
TodoAddPage.dart
class TodoCardPage extends StatefulWidget { const TodoCardPage({ Key? key, required this.title, required this.iconData, required this.iconColor, }) : super(key: key); final String title; final IconData iconData; final Color iconColor;
在主頁我嘗試使用 homePage.dart
ListView.builder(
itemCount: (snapshot.data! as QuerySnapshot).docs.length,
itemBuilder: (context, index) {
IconData iconData;
Color iconColor;
Map<String, dynamic> document =
(snapshot.data! as QuerySnapshot).docs[index].data()
as Map<String, dynamic>;
return TodoCardPage(
title: document["title"] == null
? "Hey There"
: document["title"],
iconData: iconData,
iconColor: iconColor,
time: "10 PM",
value: true,
iconBgColor: Colors.white);
});
uj5u.com熱心網友回復:
你的 iconData 和 iconColor 都沒有初始化。嘗試
IconData iconData = Icons.add; // your icon
Color iconColor = Colors.blue; // your color
uj5u.com熱心網友回復:
我剛剛發現這個錯誤非常感謝你們,正確的答案是
ListView.builder(
itemCount: (snapshot.data! as QuerySnapshot).docs.length,
itemBuilder: (context, index) {
IconData iconData;
Color iconColor;
Map<String, dynamic> document =
(snapshot.data! as QuerySnapshot).docs[index].data()
as Map<String, dynamic>;
switch (document["category"]) {
case "Work":
iconData = (Icons.breakfast_dining);
iconColor = Colors.red;
break;
default:
iconData = (Icons.add);
iconColor = Color.fromARGB(255, 56, 46, 196);
}
return TodoCardPage(
title: document["title"] == null
? "Hey There"
: document["title"],
iconData: iconData,
iconColor: iconColor,
time: "10 PM",
value: true,
iconBgColor: Colors.white);
});
uj5u.com熱心網友回復:
在添加之前,有必要在那里宣告 Icon 類。
嘗試這個
class TodoCardPage extends StatefulWidget {
const TodoCardPage({
Key? key,
required this.title,
required this.iconData,
required this.iconColor,
}) : super(key: key);
final String title;
final Icon myIcon;
final Color iconColor;
嘗試這個
ListView.builder(
itemCount: (snapshot.data! as QuerySnapshot).docs.length,
itemBuilder: (context, index) {
IconData iconData;
Color iconColor;
Map<String, dynamic> document =
(snapshot.data! as QuerySnapshot).docs[index].data()
as Map<String, dynamic>;
switch (document["category"]) {
case "Work":
iconData = (Icons.breakfast_dining);
iconColor = Colors.red;
break;
default:
iconData = (Icons.add);
iconColor = Color.fromARGB(255, 56, 46, 196);
}
return TodoCardPage(
title: document["title"] == null
? "Hey There"
: document["title"],
iconData: myIcon(iconData),// this line
iconColor: iconColor,
time: "10 PM",
value: true,
iconBgColor: Colors.white);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/428762.html
