Flutter初学者-第一次看到很多常蓝问题IDE

Flutter beginner - first time seeing lots of constant blue problems in IDE

我的问题与此有关post:

我在尝试去除我的大多数小部件以及我以前从未见过的 MyApp class 下的蓝色波浪线时遇到了问题。我用 const 构造函数作为所有小部件的前缀,但问题只是转移到我代码的不同区域。我在另一个项目中编码时没有这个问题,所以认为它可能是 main.dart 文件之外的东西。

下面的屏幕截图说明了错误和我的修复尝试。

void main() => runApp(MyApp());


class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        backgroundColor: Colors.teal[900],
        body:  SafeArea(
          child: Center(
            child:  Row(
              children: [
                Expanded(
                  child: Image(
                    image: AssetImage('images/dice1.png'),
                  ),
                ),
                SizedBox(
                  width: 20,
                ),
                Expanded(
                  child: Image(
                    image: AssetImage('images/dice1.png'),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

您应该将 const 关键字放在小部件树的最高位置。因此,如果您在列表中有三个常量子项(在您的示例中为 Row),则整个列表本身就是 const

如果列表中的所有子项都是常量,请在列表前放置 const 关键字。

所以不是这个:

Row(
  children: [
    const Child1(),
    const Child2(),
    ...
  ],
)

这样做:

Row(
  children: const [
    Child1(),
    Child2(),
    ...
  ],
)

有关详细信息,请参阅:https://dart.dev/guides/language/effective-dart/usage#dont-use-const-redundantly

我有一个简单的解决方案来避免 const 构造函数。进入你的 analysis_options.yaml 文件,并将这一行放在规则部分的底部

rule: 
  prefer_const_construtors: false,