gpt4 book ai didi

Flutter 和 GetxController - 如何管理状态不可靠性?

转载 作者:行者123 更新时间:2023-12-05 09:07:25 25 4
gpt4 key购买 nike

目前,我的应用程序在使用 Flutter 的 get 包 ( https://pub.dev/packages/get ) 和以下状态场景时遇到很多问题:

例如,我有一个 GetxController UserController。我需要在不同的小部件中使用此 Controller ,因此我在第一个小部件中使用 Get.put() 初始化它,对于其他子小部件,我将使用 Get.find()< 调用它。行得通。

但是:我有一些小部件有时会在 Controller 初始化之前加载,有时会在初始化之后加载。所以我收到很多 "UsersController"not found 错误。也许这个问题有一些解决方法?

最佳答案

您可以在应用启动之前使用 Bindings 类初始化您的 UsersController 类。

例子

class UsersController extends GetxController {
static UsersController get i => Get.find();
int userId = 5;
}

class UsersBinding extends Bindings {
@override
void dependencies() {
Get.put<UsersController>(UsersController());
}
}

void main() async {
UsersBinding().dependencies();
runApp(MyApp());
}

通过这种方式,您的 UsersController 可以保证在加载任何 Widgets 之前在您的应用中的任何地方可用。

class MyHomePage extends StatelessWidget {
final UsersController uc = Get.find();

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('GetX Bindings'),
),
body: Center(
child: Obx(() => Text('userId: ${uc.userId}')),
),
);
}
}

关于Flutter 和 GetxController - 如何管理状态不可靠性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64824293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com