import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:pet_care/Screens/BottomNavBar/nav_controller.dart';
import 'package:pet_care/Screens/Coupons/coupons_view.dart';
import 'package:pet_care/Screens/HomeScreen/home_screen_view.dart';
class BottomNavBarView extends GetView<BottomNavBarController> {
const BottomNavBarView({Key? key});
@override
Widget build(BuildContext context) {
return GetBuilder<BottomNavBarController>(builder: (controller) {
return Scaffold(
body: IndexedStack(
index: controller.selectedIndex,
children: [
HomeScreenView(),
CouponsView(),
],
),
bottomNavigationBar: BottomNavigationBar(
currentIndex: controller.selectedIndex,
onTap: (index) {
controller.updateselectedindex(index);
},
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(Icons.help),
label: 'Help',
),
BottomNavigationBarItem(
icon: Icon(Icons.local_offer),
label: 'Coupons',
),
],
),
);
}
);
}
}
在这段代码中我发现了错误:
这里我制作了带有2个屏幕的底部导航栏:
主屏幕视图
优惠券查看
注意:我制作了 HomeScreenController。
主屏幕视图出错,但优惠券视图没有问题,所以请给我任何建议或解决方案。
======== Exception caught by widgets library =======================================================
The following message was thrown building HomeScreenView(dirty):
"HomeScreenController" not found. You need to call "Get.put(HomeScreenController())" or "Get.lazyPut(()=>HomeScreenController())"
The relevant error-causing widget was:
HomeScreenView HomeScreenView:file:///D:/pet_care/lib/Screens/BottomNavBar/nav_view.dart:17:15
When the exception was thrown, this was the stack:
#0 GetInstance.find (package:get/get_instance/src/get_instance.dart:306:7)
#1 GetView.controller (package:get/get_state_manager/src/simple/get_view.dart:38:37)
#2 HomeScreenView.build (package:pet_care/Screens/HomeScreen/home_screen_view.dart:18:9)
你有两个选择 第一种方式是绑定控制器类,如下
Get.put(BottomNavBarController());
以便您可以使用它或 创建一个扩展 Bindings 的 baseController 类并覆盖依赖项方法 然后按照我说的那样在里面绑定你的控制器,以便控制器在全球范围内可用 然后在 GetMaterialApp 小部件中将 baseController 类传递给initialBinding 属性。