初始化班级中的另一个班级时需要1个参数

时间:2019-09-12 12:07:01

标签: function class flutter initialization

我想从另一个类访问一个函数。一种解决方案是在我要访问的班级中初始化第二个班级。像这样:

 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
   }

  }

2 个答案:

答案 0 :(得分:0)

听起来您有两个使用相同名称的类

  • 日历,StatefulWidget的子类,它带有一个参数
  • 日历,不带任何参数的州

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

答案 1 :(得分:-1)

您的构造函数需要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());