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