“方法'>'在null上被调用。”尝试向底部导航栏添加索引时

时间:2019-08-13 21:42:40

标签: flutter dart

尝试添加currentIndex-Property时出现此错误。

我很确定我在某些较旧的项目中确实做到了这一点,并且不知道为什么它不起作用。

int _currentIndex = 0;
bottomNavigationBar: BottomNavigationBar(
  currentIndex: _currentIndex,
  onTap: (int index) {
    setState(() {
      _currentIndex = index; 
    });
  },
  items: [
    BottomNavigationBarItem(
      icon: Icon(Icons.bubble_chart),
      title: Text("Home")
    ),
    BottomNavigationBarItem(
      icon: Icon(Icons.timelapse),
      title: Text("Timeline")
    ),
    BottomNavigationBarItem(
      icon: Icon(Icons.person_outline),
      title: Text("Home")
    )
  ],
),

错误输出为

I/flutter (11694): The method '>' was called on null.
I/flutter (11694): Receiver: null
I/flutter (11694): Tried calling: >(0)

2 个答案:

答案 0 :(得分:0)

我今天也遇到了这个确切的问题。我没有答案的原因,但我可以描述导致其消失的奇异事件链。

我的代码与您的代码几乎相同。我使用_selectedIndex作为变量名,而不是使用_currentIndex。如果我切换:

currentIndex: _selectedIndex,

currentIndex: 0,

错误消失了。 (是的,_selectedIndex被初始化为0)

最终,我最终尝试了“随机”操作来解决此问题。最终对我有用的是将变量名从_selectedIndex更改为selectedIndex。是的,就是这样。然后,更奇怪的是,当我此后立即将其切换回_selectedIndex时,错误没有再出现。

我对flutter SDK的内部了解不足,无法假设正在发生的事情,所以我不会。这对我有用,并希望将来对其他人有用。

答案 1 :(得分:0)

不幸的是,我也遇到了这个问题!

最后,我发现我的_currentIndexnull,只需检查一下即可!

在我的情况下,_currentIndex由其构造函数分配以指定初始索引,而我在调用它时忘记输入该初始索引。