[英]Flutter: Stack Overflow error with no explanation for the error
這是我得到的錯誤。 myApp 小部件或交易數據 class 是否有問題?
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
var isPressed = false;
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider.value(value: TransactionData()),
],
child: MaterialApp(
theme: ThemeData(
primarySwatch: Colors.purple,
),
home: Scaffold(
appBar: AppBar(
title: Text(
"Personal Expenses",
style:
TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
),
actions: <Widget>[
Icon(Icons.add),
],
backgroundColor: Theme.of(context).primaryColor,
),
body: Stack(
children: <Widget>[
TxDesign(),
isPressed ? AddTransaction() : Container()
],
),
floatingActionButtonLocation:
FloatingActionButtonLocation.centerFloat,
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
isPressed = true;
});
},
splashColor: Colors.yellowAccent,
child: (Icon(Icons.add)),
backgroundColor: Colors.orange,
foregroundColor: Colors.black,
),
),
),
);
}
}
任何人都知道如何解決這個問題? 如果需要,我可以提供 TxDesign 小部件和 AddTransation 小部件的代碼。 起初我以為這是因為我在彼此之上添加了 TxDesign 和 AddTransaction,並且由於兩者都有一個 Column,所以出現了錯誤。 我對 flutter 還很陌生,我還在練習。
class TransactionData with ChangeNotifier {
final String id;
final String title;
final DateTime subtitle;
final String price;
TransactionData({this.id, this.title, this.subtitle, this.price});
List<TransactionData> transactions = [
TransactionData(
id: 'tx1',
price: "69.99",
title: 'New Shoes',
subtitle: DateTime.now()),
TransactionData(
id: 'tx2', price: "70.0", title: 'New Bois', subtitle: DateTime.now()),
];
// List<TransactionData> get txData {
// return [...transactions];
// }
}
這是交易數據的代碼
問題是TransactionData
包含以下列表:
List<TransactionData> transactions = [
TransactionData(
id: 'tx1',
price: "69.99",
title: 'New Shoes',
subtitle: DateTime.now()),
TransactionData(
id: 'tx2', price: "70.0", title: 'New Bois', subtitle: DateTime.now()),
];
由於此列表將作為TransactionData
object 初始化的一部分進行初始化,因此我們創建了一個無限循環,因為此列表需要創建兩個TransactionData
對象,然后又需要創建新的TransactionData
對象等等......
我不確定此列表的目的是什么,但解決方案是將其移出此 class 或使其成為例如 static 因此僅存在一個列表副本,這些副本在所有TransactionData
對象之間共享。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.