是否有不需要上下文的 Navigator.push
替代方案?这是我的问题。
我有一个非常嵌套和深入的调用堆栈,并不是每个函数都有一个 BuildContext 参数。除了将当前 BuildContext 从一个函数传递到另一个函数之外,还有其他方法可以获取当前 BuildContext 吗?
test1.dart
Widget build(BuildContext) {
...
new GestureDetector(
onTap: () => foo1() // very deep callstack until it calls foo30
...
}
test2.dart
void foo30() {
// need context here like:
BuildContext context = IHopeThatExists.getCurrentContext();
// why do I need that? Navigator.push needs a context or is there an alternative? FYI: I don't need to go back to the previous page though
Navigator.push(context, ..)
}
最佳答案
您可以使用 Builder
小部件:
return Builder(
builder: (context) {
return RaisedButton(
onPressed: () {
Navigator.of(context).push(...);
},
...
);
},
);
关于dart - 通过参数不可用时获取 BuildContext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52176921/