问题描述
我有一个mixin(MyMixin
),我可以在某些小部件的状态下使用它:
class MyStfulWidget extends StatefulWidget {
@override
_MyStfulWidget State createState() => _MyStfulWidget State();
}
class _MyStfulWidget State extends State<MyStfulWidget> with MyMixin { ... }
我有时需要将此有状态的小部件作为方法(MyMethod
)的参数传递
void myMethod(Widget myWidget) { ... }
以下方法的问题在于它接受各种小部件。如果我传递的部件没有MyMixin,它将无法正常工作...
有什么方法可以强制将“ myWidget”参数设置为有状态的小部件,该状态的小部件在其状态下包含mixin?
感谢您的帮助!
解决方法
首先,您说您将 StatefulWidget
传递给 MyWidget
方法,但 MyMixin
在其 State
上,而 State
是私有的,因此在这个案例。
在您的 MyMixin
上下文中,您应该将它混合到 StatefulWidget
本身并将方法的原型更改为
void myMethod<T extends MyMixin>(T widget);