我试图实现一个bottomNavigationBar,但是我无法完成它,我正在使用Get来处理应用程序的路径和状态。
我是flutter的新手,但是阅读文档时我仍然不理解
这是主窗口小部件。
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
backgroundColor: AppColors.black,
title: Center(
child: CommonAssetImage(
asset: 'logo.png',
color: AppColors.white,
height: 30,
),
),
),
body: BodyTabsScreen(),
bottomNavigationBar: HomeScreenBottomNavigatorBar()),
);
}
然后,我有一个小部件可以调用其他小部件。
x一个一个一个一个x一个一个二个x
6条答案
按热度按时间c7rzv4ha1#
当你使用
Obx
或Getx
小部件而没有插入一个可观察的变量时,Getx总是会抛出这个错误。所以如果你不想基于一个扩展GetxController
的类中的变量的更新值来重建一个小部件,那么就不要使用Getx小部件。如果您只是尝试使用
Getx
进行路由,那么请确保将MaterialApp
更改为GetMaterialApp
并定义路由,如下所示。然后在底部导航栏的
onTap
中使用Get.to(Page2());
pw136qt22#
只需删除包含Row小部件的Obx小部件,如下所示:
为什么?因为你没有在你的小部件树中使用任何可观察的(obs/Rx)变量,当值改变时,它会触发重建。所以GetX抱怨是有原因的。
zi8p0yeb3#
控制器应在Obx内部,否则其显示此错误。
e1xvtsh34#
请注意,有两个必需方面:1)从GetXController扩展,2)从控制器返回值的字段/方法必须从Rx类型计算。在我的例子中,我为测试创建了GetXController的子类,返回值是硬编码的(不基于Rx值),并发生了ObX错误。
bvhaajcl5#
对于当前方案**
You dont need to use getx for this page
(其实现不正确),请删除OBX()**,错误将消失。plupiseo6#
当你没有在你的小部件中使用你的控制器值时就会发生这种情况。这就是为什么它会出错,因为使用Obx或Getx()小部件没有意义
解决方案: