Flutter 颤振中GlobalKey的当前状态为空
在下面的代码中,包含三个具有以下结构的小部件:Flutter 颤振中GlobalKey的当前状态为空,flutter,Flutter,在下面的代码中,包含三个具有以下结构的小部件:ShowEventPage->ChildWidget->eventUserList。我想在选择菜单项时调用ShowEventPage中的EventUserList方法。因此,我使用GlobalKey。但是调用方法select会返回未处理的异常:NoSuchMethodError:方法“showUserListDialog”在null上被调用。。如果我将键传递给EventUserLists(键:gUserListsKey),则没有任何区别 显示事件页面
ShowEventPage->ChildWidget->eventUserList
。我想在选择菜单项时调用ShowEventPage中的EventUserList方法。因此,我使用GlobalKey。但是调用方法select
会返回未处理的异常:NoSuchMethodError:方法“showUserListDialog”在null上被调用。
。如果我将键传递给EventUserLists(键:gUserListsKey)
,则没有任何区别
显示事件页面。dart:
GlobalKey<EventUserListsState> gUserListsKey = GlobalKey<EventUserListsState>();
class ShowEventPage extends StatefulWidget {
@override
ShowEventPageState createState() => ShowEventPageState();
}
class ShowEventPageState extends State<ShowEventPage> {
...
select(Choice choice, BuildContext context) async {
switch (choice.title) {
case 'Attending':
gUserListsKey.currentState.showUserListDialog('attending');
break;
}
}
...
@override
Widget build(BuildContext context) {
return AppScaffold(
actions: <Widget>[
PopupMenuButton<Choice>(
onSelected: (Choice choice) {
select(choice, context);
},
itemBuilder: ...
},
)
]
body: ChildWidget()
}
class ChildWidget extends StatefulWidget {
@override
_ChildWidgetState createState() => _ChildWidgetState();
}
class _ChildWidgetState extends State<ChildWidget> {
@override
Widget build(BuildContext context) {
return EventUserLists ();
}
}
class EventUserLists extends StatefulWidget {
EventUserLists(
{Key key})
: super(key: key);
final Key key = gUserListsKey;
@override
EventUserListsState createState() => EventUserListsState();
}
...