我试图在Flutter中使用 BottomNavigationBar ,但它给了我一个奇怪的错误,似乎没有引用我的代码,我无法在任何地方找到此错误 . 事实上,我能找到的每个教程,页面或问题都说都是这样做的 .

这是我的代码来自 home.dart

... Imports ...

class HomePage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return HomePageState();
  }
}

class HomePageState extends State<HomePage> {
  int _selectedTab = 0;
  final _pageOptions = [
    HomePage(),
    CatPage(),
    SearchPage(),
  ];

  void _onItemTapped(int index) {
    setState(() {
      _selectedTab = index;
    });
    print(index);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Loopt In'),
      ),
      body: _pageOptions[_selectedTab],
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: _selectedTab,
        onTap: _onItemTapped,
        items: [
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            title: Text('Home'),
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.category),
            title: Text('Categories'),
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.search),
            title: Text('Search'),
          ),
        ],
      ),
    );
  }
}

有趣的是,当我更改 _pageOptions 数组以获得 Text() 小部件而不是小部件时,我使其工作正常,但我不知道为什么并且需要它显然与我的小部件一起工作 .

这是我得到的错误:

[VERBOSE-2:shell.cc(181)] Dart Error: Unhandled exception:
'package:flutter/src/widgets/framework.dart': Failed assertion: line 2257 pos 20: '_debugCurrentBuildTarget == context': is not true.
#0      _AssertionError._doThrowNew (dart:core/runtime/liberrors_patch.dart:40:39)
#1      _AssertionError._throwNew (dart:core/runtime/liberrors_patch.dart:36:5)
#2      BuildOwner.buildScope.<anonymous closure> (package:flutter/src/widgets/framework.dart:2257:20)
#3      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2261:12)
#4      RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:817:13)
#5      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:709:7)
#6      runApp (package:flutter/src/widgets/binding.dart:748:7)
#7      main (file:///Users/garrettlove/Documents/learn/Flutter/loopt_in/lib/main.d<…>