【发布时间】:2022-11-11 11:56:49
【问题描述】:
我在控制器内使用bindStream() 函数和GetX 包。
class FrediUserController extends GetxController {
@override
void onReady() {
super.onReady();
final userController = Get.find<FrediUserController>();
var groupIds = userController.user.groups;
groupList.bindStream(DatabaseManager().groupsStream(groupIds));
ever(groupList, everCallback);
}
}
但是,当FrediUserController 中的 groupIds 更新时(使用触发的 ever 函数,我想重新绑定流。意思是,删除现有的并用新的 id 再次绑定,或替换已更改的那些。
临时解决方案: 内部ever() 函数
Get.delete<FrediGroupController>();
Get.put(FrediGroupController());
每次我从数据库更改groupIds 时,都会运行此代码。但是我不要每次发生小变化时都想启动我的控制器,这是糟糕的用户体验。
这似乎很难,有人可以指导我正确的方向吗?也许有一种完全不同的方法来连接两个 GetX 控制器?
【问题讨论】:
标签: flutter dart firebase-realtime-database flutter-getx