gpt4 book ai didi

dart - 通过参数获取 BuildContext 不可用时

转载 作者:IT王子 更新时间:2023-10-29 07:13:35 25 4
gpt4 key购买 nike

是否有不需要上下文的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com