gpt4 book ai didi

design-patterns - 自定义小部件的回调中没有上下文

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

我是 Flutter 的新手,所以经验比我丰富的人可能很容易回答这个问题。这更多的是关于设计的问题而不是代码问题。

有时我想编写可重用的小部件并使它们有些通用我想为用户输入提供回调,以便父小部件可以订阅然后采取适当的操作而不是硬编码路由等。但我直接运行例如,如果我想从我的回调中导航,就会遇到麻烦,因为我没有上下文。那么我该如何在 Flutter 中设计这个呢?

最佳答案

您始终可以在无状态小部件中拥有可选/必需的上下文参数。对于有状态的小部件,上下文通常是可用的,但如果您出于某种原因需要父上下文,您可以随时将其传递给您的小部件。看看下面的例子

class GenericWidgetFoo extends StatelessWidget {
final BuildContext context;
final Key key;
final String name;

const GenericWidgetFoo(
{this.key, @required this.context, @required this.name});

@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Center(
child: Text(
this.name,
style: TextStyle(
color: Theme.of(context).primaryColorLight,
),
)),
);
}
}

关于design-patterns - 自定义小部件的回调中没有上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56178853/

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