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