flutter getx,带有两个控制器的 getview

发布于 2025-01-16 20:04:20 字数 683 浏览 0 评论 0原文

我对 GetView 的工作原理有点困惑。我目前有一个页面需要至少有 2 个不同的控制器。据我所知,人们大多使用 GetView 而不是 Get.find() 来获得更好的代码格式,但是 GetView 似乎只使用 1 个控制器,例如:

class HomeScreen extends GetView

我尝试用谷歌搜索它,但没有找到任何解决方案。我还尝试使用

class HomeScreen extends GetView;与 GetView

但它给了我一个错误,说

“GetView”类不能用作 mixin,因为它扩展了“Object”以外的类。

如果您能给我一个解决方案或解决方法,以便将 GetView 与两个或多个控制器一起使用,我将非常感激。

请注意我正在使用 GetX 绑定(因此我已经在另一个文件中编写了 Get.put(Controller()))和 < strong>我想避免在我的小部件树中使用 Get.find。

I'm a little bit confused with how GetView works. I currently have a page that needs to have at least 2 different controllers. From what I've seen, people mostly use GetView as opposed to Get.find() for better code format, however GetView seems to only use 1 controller, for example:

class HomeScreen extends GetView<HomeController>

I have tried to google it and haven't found any solution. I also have tried to use

class HomeScreen extends GetView<HomeController> with GetView<UserController>

But it gave me an error that says

The class 'GetView' can't be used as a mixin because it extends a class other than 'Object'.

I would very appreciate if you can give me a solution or a workaround to use GetView with two or more controllers.

Please note that I'm using GetX bindings (therefore I have already wrote Get.put(Controller()) in another file) and I want to avoid using Get.find in my widget tree.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岛徒 2025-01-23 20:04:20

您能否解释一下将 GetView 与多个控制器一起使用的用例是什么?不支持。因为一个视图可以有多个控制器,但是有多少个呢?

因此,在这种情况下,您应该只对不同的控制器使用 GetX 小部件,例如:

GetX<Controller1>(),
GetX<Controller2>(),

等等

Can you please explain what's the usecase of using GetView with multiple controllers? It's not supported. Because a view can have multiple controllers but how many?

Therefore, in that case, you should just use the GetX widget for different controllers like:

GetX<Controller1>(),
GetX<Controller2>(),

and so on

苍白女子 2025-01-23 20:04:20

如果您需要在页面上使用多个控制器,只需使用 StatelessWidget,如下所示:

class Login extends StatelessWidget{
   const Login ({
    super.key,
  });
   AuthController get authController => Get.find();
   TodoController get todoController => Get.find();
}

当您使用 getter 获取控制器时,您可以将您的小部件保留为 const。

避免 Get.find 似乎不是一个有效的要求

If you need multiple controllers on the page just use StatelessWidget like this:

class Login extends StatelessWidget{
   const Login ({
    super.key,
  });
   AuthController get authController => Get.find();
   TodoController get todoController => Get.find();
}

When you obtain your controllers using getter you can preserve your widget being const.

Avoiding Get.find does not seem like a valid requirement

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文