Flutter 在初始值设定项中只能访问静态成员
我不能在Flutter 在初始值设定项中只能访问静态成员,flutter,dart,Flutter,Dart,我不能在Scaffold中使用GlobalKey。错误是 在初始值设定项中只能访问静态成员 //全局密钥 最终全局键_mainKey=GlobalKey(); //TabBar列表 最终列表选项卡栏=[ 纵队( 儿童:[ 图标(图标、账户、余额、钱包), 文本(“颤振”), 文本(“省道”) ], ), 扁平按钮( 子项:文本(“打开的抽屉”), 已按下:(){ //(_主键)具有红色下划线颜色 _mainKey.currentState.openDrawer(); }, ) ]; /* 编译器
Scaffold
中使用GlobalKey
。错误是
在初始值设定项中只能访问静态成员
//全局密钥
最终全局键_mainKey=GlobalKey();
//TabBar列表
最终列表选项卡栏=[
纵队(
儿童:[
图标(图标、账户、余额、钱包),
文本(“颤振”),
文本(“省道”)
],
),
扁平按钮(
子项:文本(“打开的抽屉”),
已按下:(){
//(_主键)具有红色下划线颜色
_mainKey.currentState.openDrawer();
},
)
];
/*
编译器消息:
lib/Trial.dart:32:9:错误:无法访问字段初始值设定项中的“this”以读取“\u mainKey”。
_mainKey.currentState.openDrawer()*/
简短回答
替换
final _mainKey = ...;
与
长答案: 我建议您将
选项卡栏
从变量更改为方法,这样您就不需要将变量设置为静态
。比如:
List<Widget> getTabBar() {
return [
Column(
children: <Widget>[Icon(Icons.account_balance_wallet), Text('flutter'), Text('dart')],
),
FlatButton(
child: Text('Open Drawer'),
onPressed: () {
_mainKey.currentState.openDrawer();
},
)
];
}
List gettabar(){
返回[
纵队(
子项:[图标(Icons.account\u balance\u wallet)、文本('flatter')、文本('dart')],
),
扁平按钮(
子项:文本(“打开的抽屉”),
已按下:(){
_mainKey.currentState.openDrawer();
},
)
];
}
您能告诉我原因吗?因为您不能在初始值设定项列表中使用非静态成员,所以我更新了问题以提供更好的解决方案。非常感谢,我理解了简短和冗长的答案,感谢发生了什么事您之前接受了答案,而您只是撤销了答案?我可以知道在这个解决方案中什么不起作用吗是的,我不知道为什么!我又做了一次
static _mainKey = ...;
List<Widget> getTabBar() {
return [
Column(
children: <Widget>[Icon(Icons.account_balance_wallet), Text('flutter'), Text('dart')],
),
FlatButton(
child: Text('Open Drawer'),
onPressed: () {
_mainKey.currentState.openDrawer();
},
)
];
}