在我的 class 中初始化另一个 class 时需要 1 个参数
1 argument required when initalizing another class in my class
我想从另一个 class 访问一个函数。一种解决方案是初始化我要访问的 class 中的第二个 class。像这样:
class Calendarsub extends State<Calendar> with SingleTickerProviderStateMixin{
final TableCalendar tableCalendar;
Calendarsub(this.tableCalendar);
当我这样做时,我可以访问这些功能,但应用程序不是 运行,因为状态小部件说:“需要 1 个所需的参数,但找到 0 个。”
class Calendar extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return Calendarsub(); // In this bracket must be the argument
// But I don't know which one
}
}
您的构造函数需要 1 个参数 - TableCalendar
所以,你必须用这个值初始化它:
TableCalendar tableCalendar = TableCalendar(); //or somethimg like that
Calendarsub calendar = Calendarsub(tableCalendar);
或将此参数设为可选:
class Calendarsub extends State<Calendar> with SingleTickerProviderStateMixin{
TableCalendar tableCalendar;
Calendarsub({this.tableCalendar});
在第二种情况下创建如下:
Calendarsub calendar = Calendarsub(tableCalendar: TableCalendar());
听起来您有两个 类 使用相同的名称
- Calendar,StatefulWidget的子类,带参数
- Calendar,一个State,不接受任何参数
这会使编译器感到困惑。您需要重命名以便不再有名称冲突。
我想从另一个 class 访问一个函数。一种解决方案是初始化我要访问的 class 中的第二个 class。像这样:
class Calendarsub extends State<Calendar> with SingleTickerProviderStateMixin{
final TableCalendar tableCalendar;
Calendarsub(this.tableCalendar);
当我这样做时,我可以访问这些功能,但应用程序不是 运行,因为状态小部件说:“需要 1 个所需的参数,但找到 0 个。”
class Calendar extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return Calendarsub(); // In this bracket must be the argument
// But I don't know which one
}
}
您的构造函数需要 1 个参数 - TableCalendar
所以,你必须用这个值初始化它:
TableCalendar tableCalendar = TableCalendar(); //or somethimg like that
Calendarsub calendar = Calendarsub(tableCalendar);
或将此参数设为可选:
class Calendarsub extends State<Calendar> with SingleTickerProviderStateMixin{
TableCalendar tableCalendar;
Calendarsub({this.tableCalendar});
在第二种情况下创建如下:
Calendarsub calendar = Calendarsub(tableCalendar: TableCalendar());
听起来您有两个 类 使用相同的名称
- Calendar,StatefulWidget的子类,带参数
- Calendar,一个State,不接受任何参数
这会使编译器感到困惑。您需要重命名以便不再有名称冲突。