我想从另一个类访问一个函数。一种解决方案是在我要访问的班级中初始化第二个班级。像这样:
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
}
}
答案 0 :(得分:0)
听起来您有两个使用相同名称的类
这会使编译器感到困惑。您需要重命名,以便不再存在名称冲突。
答案 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());