【问题标题】:How to pass variables inside bottomNavigationBar tabs如何在底部导航栏选项卡中传递变量
【发布时间】:2019-06-27 01:24:25
【问题描述】:

我正在尝试实现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()
      ];

【问题讨论】:

标签: flutter dart


【解决方案1】:

你可以尝试在你的 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()
  ];

【讨论】:

    【解决方案2】:

    您应该使用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()
        ];
      }
    
    ....
    
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      • 2022-01-15
      • 2020-08-26
      • 2019-07-17
      • 2020-09-10
      • 1970-01-01
      相关资源
      最近更新 更多