为什么在 Flutter 中实例化 widget 时有时会使用 const?
Why use const sometimes when instantiating a widget in Flutter?
我在 Flutter 中有一个代表简单加载的小部件:
class Loading extends StatelessWidget {
const Loading({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Material(
child: Center(
child: CircularProgressIndicator(),
),
);
}
}
我在版本 2021.2.1 上使用 IntelliJ,在 flutter 中构建代码时,我在不同时间收到此警告:
要解决这个 lint 问题可以只在 return 语句后添加保留字 const
,代码如下:
class Loading extends StatelessWidget {
const Loading({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return const Material(
child: Center(
child: CircularProgressIndicator(),
),
);
}
}
这到底是怎么变flutter的?这是一个重大变化吗?
如果不是很重要,有没有办法在 IntelliJ 中禁用这些警告?因为我觉得他们很无聊。
看看这个post是否可以帮助你澄清:
build 中的 Const 构造函数,例如 const Text('static text') 不会导致此文本重建。
它将阻止 Widget 在重建其父级时被重建,因为您已经知道它永远不会改变。因此,只需构建一次,您就可以通过将其设为 const
.
来提高性能
我在 Flutter 中有一个代表简单加载的小部件:
class Loading extends StatelessWidget {
const Loading({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Material(
child: Center(
child: CircularProgressIndicator(),
),
);
}
}
我在版本 2021.2.1 上使用 IntelliJ,在 flutter 中构建代码时,我在不同时间收到此警告:
要解决这个 lint 问题可以只在 return 语句后添加保留字 const
,代码如下:
class Loading extends StatelessWidget {
const Loading({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return const Material(
child: Center(
child: CircularProgressIndicator(),
),
);
}
}
这到底是怎么变flutter的?这是一个重大变化吗? 如果不是很重要,有没有办法在 IntelliJ 中禁用这些警告?因为我觉得他们很无聊。
看看这个post是否可以帮助你澄清:
build 中的 Const 构造函数,例如 const Text('static text') 不会导致此文本重建。
它将阻止 Widget 在重建其父级时被重建,因为您已经知道它永远不会改变。因此,只需构建一次,您就可以通过将其设为 const
.