【发布时间】:2019-09-25 13:51:59
【问题描述】:
我想在 BottomAppBar 的单击图标上导航到新屏幕,但出现错误: 在初始化器中只能访问静态成员
final makeBottom = Container(
height: 45.0,
child: BottomAppBar(
color: Colors.white,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
IconButton(
icon: Icon(Icons.home, color: Color.fromARGB(255, 30, 110, 160)),
onPressed: navigateToPage,//only static members can be accessed in initializers
),
IconButton(
icon: Icon(Icons.search, color: Color.fromARGB(255, 30, 110, 160)),
onPressed: () {},
),
IconButton(
icon: Icon(Icons.star, color: Color.fromARGB(255, 30, 110, 160)),
onPressed: () {},
),
IconButton(
icon: Icon(Icons.favorite_border,
color: Color.fromARGB(255, 30, 110, 160)),
onPressed: () {},
),
IconButton(
icon: Icon(Icons.account_circle,
color: Color.fromARGB(255, 30, 110, 160)),
onPressed: () {},
),
],
),
),
);
方法 navigateToPage
void navigateToPage() async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Userqst(
user: widget.user,
),
fullscreenDialog: true));
}
【问题讨论】:
-
如果你写
onPressed: () => navigateToPage()会发生什么? -
你是在构造函数中创建这个吗?因为就我而言,这个错误应该只发生在构造函数上。如果您想将一些小部件存储在变量中(不知道您是否应该这样做,想),请在
initState方法中执行此操作。 -
我在创建battomappbar的地方调用makeBottom方法,你说的是哪个构造函数?
-
我仍然有同样的错误我该怎么办?
-
@DjamilaJada 你有四个答案,与试图帮助你的人一起参与 cmets 可能会取得成功。
标签: dart flutter bottomappbar