找不到控制器

问题描述 投票:0回答:1
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个屏幕的底部导航栏:

  1. 主屏幕视图

  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)
flutter dart bottomnavigationview
1个回答
0
投票

你有两个选择 第一种方式是绑定控制器类,如下

Get.put(BottomNavBarController());

以便您可以使用它或 创建一个扩展 Bindings 的 baseController 类并覆盖依赖项方法 然后按照我说的那样在里面绑定你的控制器,以便控制器在全球范围内可用 然后在 GetMaterialApp 小部件中将 baseController 类传递给initialBinding 属性。

© www.soinside.com 2019 - 2024. All rights reserved.