如何在bottomNavigationBar选项卡中传递变量

时间:2019-06-26 11:48:06

标签: flutter dart

我正在尝试实现bottomNavigationBar,但是我需要将从另一页获得的变量传递给其中一个标签。

我厌倦了通过widget的访问,但是没有用。

我该如何解决?

 class BottomNavigationBar extends StatefulWidget {
      int num;

      BottomNavigationBar(this.num);
      @override
      _BottomNavigationBarState createState() => _BottomNavigationBarState();
    }

    class _BottomNavigationBarState extends State<BottomNavigationBar> {
    int currentTabIndex = 0;
      List<Widget> tabs = [
        PageA(widget.num),  //The problem
        PageB(),
        PageC()
      ];

2 个答案:

答案 0 :(得分:0)

您可以尝试在State类上创建一个变量

 class BottomNavigationBar extends StatefulWidget {
  int num;

  BottomNavigationBar(num);
  @override
  _BottomNavigationBarState createState() => _BottomNavigationBarState(num);
}

class _BottomNavigationBarState extends State<BottomNavigationBar> {

int num;

_BottomNavigationBarState(num);


int currentTabIndex = 0;
  List<Widget> tabs = [
    PageA(this.num),  //The problem
    PageB(),
    PageC()
  ];

答案 1 :(得分:0)

您应该使用initState来分配值。这就是你所缺少的。

class _BottomNavigationBarState extends State<BottomNavigationBar> {
  int currentTabIndex = 0;
  List<Widget> tabs;

  @override
  void initState() {
    super.initState();
    tabs = [
      PageA(widget.num) // no problem now
      PageB(),
      PageC()
    ];
  }

....

}