[英]error: 4 positional argument(s) expected, but 0 found
您遇到問題的原因是您需要在創建小部件時設置這些構造函數參數,除非您實際上沒有這樣做並且無法發送任何參數。 無論哪種方式,您需要做的第一件事就是擺脫 @required 指令,因為它不是必需的,特別是如果您不想包含它們。 您可以通過三種方式解決此問題:
const NavBar([Key? key, this.name = "", this.credit = "", this.rank = ""])
const NavBar([Key? key, this.name, this.credit, this.rank])
String? name;
String? credit;
String? rank;
此外,正如Just a Person所建議的那樣,我會將它們從位置參數轉換為命名參數,因為它為您提供了更大的靈活性。
您可以通過多種方式在 Dart 中設置構造函數,因此我無法確定哪種方法最適合您,因為這取決於您的要求。
您需要在導航欄小部件中傳遞所需的參數
drawer : NavBar('name','credit','rank')
用上面的代碼替換你的抽屜代碼。
在您的 NavBar 中,您不是在聲明一個命名參數,而是一個位置參數。 所以刪除了所有參數前面的@required
或將它們括在{}
中,但在這種情況下,我認為你應該命名參數,因為它會更清楚。
像這樣: NavBar(Key? key, {required this.name, this.credit, this.rank})
同時傳遞所有四個參數,但不是按名稱傳遞,因為它們不是位置的。
drawer: NavBar(name: name, credit: credit, rank: rank)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.