在我的 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,不接受任何参数

这会使编译器感到困惑。您需要重命名以便不再有名称冲突。