I am trying to use Getx. I have a Home class .Inside Home I have a tab view.
return Scaffold(
appBar: AppBar(
centerTitle: true,
bottom:TabBar(
controller: controller.controller,
tabs: controller.myTabs,
),
actions: [
Obx(
() => Center(
child: Text(controller.count.toString()),
),
),
],
),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: TabBarView(
controller: controller.controller,
physics: const NeverScrollableScrollPhysics(),
children: [
AddPage(),
WordsPage(),
In AddPageController I fetch a list from database. I want to show count of items inside list in home page :
actions: [
Obx(
() => Center(
child: Text(controller.count.toString()),
),
),
],
This is my method inside AddPageController:
class AddController extends GetxController {
RxInt count = 0.obs;
@override
void onInit() {
getAddedVocabs();
super.onInit();
}
Future<void> getAddedVocabs() async {
final result = repository.getVocabsFromdb();
vocabs.addAll(result);
count.value = vocabs.length;
}
When AddController is binded , getAddedVocabs();
method from onInit
is called. now how can I trigger Obx
in Home?
I want to do that with WordsPage(),
and WordsPageController,
.
It's good practice to call HomeController inside other controller to call obs value? :
Future<void> getAddedVocabs() async {
final result = repository.getVocabsFromdb();
vocabs.addAll(result);
Get.find<HomeController>().count.value = vocabs.length;
}