颤振力状态具有一定的混合

时间:2020-10-01 09:35:11

标签: flutter dart mixins

我有一个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?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

首先,您说您将 StatefulWidget 传递给 MyWidget 方法,但 MyMixin 在其 State 上,而 State 是私有的,因此在这个案例。 在您的 MyMixin 上下文中,您应该将它混合到 StatefulWidget 本身并将方法的原型更改为

void myMethod<T extends MyMixin>(T widget);