gpt4 book ai didi

flutter - 小部件的 "const"是否只需要在有状态小部件中使用?

转载 作者:行者123 更新时间:2023-12-03 04:10:13 25 4
gpt4 key购买 nike

很明显,在 StatefulWidget 中,如果状态发生变化,则 const Text('...') 将不会重建。

class _SomeWidgetState extends State<SomeWidget> {
@override
Widget build(BuildContext context) {
return const Text('Some Static Text'); // doesn't rebuild
}
}

但是,我的问题是:在 StatelessWidget 中使用 const 有什么好处吗?

class ListItem extends StatelessWidget {
@override
Widget build(BuildContext context) {
return const Text('Some Static Text') // Is `const` useful here?
}
}

最佳答案

是的,它很有用。

构建中的 Const 构造函数对各种小部件都很有用,包括 StatelessWidget 和其他不太常见的小部件,如 InheritedWidget 或 RenderObjectWidget。

请记住,所有小部件都可能带有参数,因此您可能:

class MyStateless extends StatelessWidget {
const MyStateless({Key key, this.count}): super(key: key);

final int count;

@override
Widget build(BuildContext context) {
return Row(
children: [
Text('$count'),
const Text('static text'),
],
);
}
}

在那种情况下,您的无状态小部件可能会使用不同的参数重建,例如:

MyStateless(count: 0);

到:

MyStateless(count: 42);

在那种情况下,使用 const Text('static text') 不会导致此文本重建。

关于flutter - 小部件的 "const"是否只需要在有状态小部件中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59114070/

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