我有一个名为ConnectionManagerController
的GetXController
。这个类实际上检查互联网连接。
我有控制器绑定
class ControllerBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut<ConnectionManagerController>(
() => ConnectionManagerController());
}
}
我已经在main.dart
中将其绑定为初始绑定,如下所示。
runApp(GetMaterialApp(
initialBinding: ControllerBinding(),
debugShowCheckedModeBanner: false,
theme: ThemeData(primarySwatch: Colors.blue, fontFamily: 'Reckless'),
home: _defaultScreen,
));
在我的所有页面的控制器中,我这样称呼它
final ConnectionManagerController netcontroller = Get.find<ConnectionManagerController>();
我在各自的视图中使用netcontroller
来显示基于互联网可用性的不同小部件。
- 问题**
现在,当我转到Page 1
到Page 2
,然后返回到Page 1
时,ConnectionManagerController
会被删除。因此,很明显,当我从Page 1
转到Page 3
时,会得到错误ConnectionManagerController not found
我想做的是让ConnectionManagerController
一直可用。有人能告诉我哪里出错了吗?任何帮助都将不胜感激。
1条答案
按热度按时间ajsxfq5m1#
你可以用
GetxService
代替GetxController
。https://github.com/jonataslaw/getx#getxservice
此外,您还可以定义自定义函数,如下所示:
这样您就可以在任何地方调用
ConnectionManagerController netcontroller = getConnectionManager()
,并且仍然可以获得控制器(如果发生任何错误或应用程序关闭或其他情况,则重新示例化它)