此ListTile
位于build方法内的模式底部表单中。它首先关闭当前的底页。然后,当点击时,它会显示一个模式底页。
它实际上是有效的。
但是我的困惑是,它不应该产生关于已经弹出的上下文的错误吗?
ListTile(
title: Text('Test'),
onTap: () {
Navigator.of(context).pop(); // Dismiss current bottom sheet
showModalBottomSheet( // Show new bottom sheet
context: context, // Using the same popped context?
builder: (context) {
return Container(
child: Text('test test'),
);
},
);
},
),
发布于 2021-03-23 08:12:17
此context
属于包装小部件的build(BuildContext context)
方法。当小部件保持不变时,上下文是有效的。
如果您对它的工作原理感兴趣:当您调用Navigator.of(context)
时,它会在树上遍历以查找最近的Navigator
小部件,从这个上下文开始。当你展示新的底页时,它也会做同样的事情。因此,只要在当前Navigator
下,任何上下文都可以。
https://stackoverflow.com/questions/66759267
复制相似问题