调用Navigator.of(context).pop()后,可以通过以下方式获取父context:
示例代码:
Navigator.of(context).popUntil((route) {
// 在这里获取到父context并保存
parentContext = route.settings.context;
return true;
});
示例代码: 在父页面中:
GlobalKey parentKey = GlobalKey();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChildPage(parentKey: parentKey),
),
);
在子页面中:
class ChildPage extends StatelessWidget {
final GlobalKey parentKey;
ChildPage({required this.parentKey});
// 在需要获取父context的地方使用parentKey.currentContext即可
// 例如:parentKey.currentContext.findAncestorWidgetOfExactType<ParentWidget>()
}
通过以上两种方式,可以在调用Navigator.of(context).pop()后获取到父context,并在需要的地方使用。
领取专属 10元无门槛券
手把手带您无忧上云