Flutter之不使用GetView 2025-04-17 周

2025-04-16  本文已影响0人  松哥888

吸引人的介绍

在GetX的官网,对于GetView的介绍非常好。说是可以直接使用controller

class AwesomeController extends GetController {
   final String title = 'My Awesome View';
 }

  // ALWAYS remember to pass the `Type` you used to register your controller!
 class AwesomeView extends GetView<AwesomeController> {
   @override
   Widget build(BuildContext context) {
     return Container(
       padding: EdgeInsets.all(20),
       child: Text(controller.title), // just call `controller.something`
     );
   }
 }

实际的坑

Get.put(AwesomeController());

绑定函数会返回对应的controller,存成成员变量就可以,那么提供一个默认的controller又有什么意义。

源码

abstract class GetView<T> extends StatelessWidget {
  const GetView({Key? key}) : super(key: key);

  final String? tag = null;

  T get controller => GetInstance().find<T>(tag: tag)!;

  @override
  Widget build(BuildContext context);
}

其实就加了个find方法,真的很水。tag作为变量还行,还给个初始值,弱智的做法。

上一篇 下一篇

猜你喜欢

热点阅读