You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter @immutable类构造器优先用const字面量警告怎么解决?

问题原因

这个警告触发的核心原因是:Row、Expanded、Column都属于被@immutable注解标记的不可变类,Flutter规范推荐这类类的构造参数优先使用const常量,让组件在编译阶段完成初始化,避免每次页面build时重复创建对象,从而提升运行性能。
你当前代码中虽然给两个Text组件单独加了const修饰,但包含这些组件的上层数组、组件都没有添加const标记,因此触发了规则警告。

解决方法

方案1:遵循规范添加const标记(推荐)

只需要给上层可标记为const的节点添加修饰即可,修改后的代码如下:

Widget titleSection = Container(
  child: Row(
    //need to expand the rows on the column
    children: const [
      Expanded(
        child: Column(
          children: [
            Text(
              'Hello1',
            ),
            Text(
              'Hello2',
            ),
          ],
      )         
    ],
  ),
);

注意:当你给Row的children数组添加const修饰后,数组内部所有参数为常量的不可变组件会自动被识别为常量,内部的Text不需要再单独添加const标记,代码更简洁。

方案2:屏蔽警告(不推荐)

如果不需要遵循该规范,可以选择两种方式屏蔽:

  • 单处忽略:在触发警告的代码行上方添加注释// ignore: prefer_const_literals_to_create_immutables
  • 全局关闭:在项目的analysis_options.yaml文件的规则配置中添加prefer_const_literals_to_create_immutables: false

内容的提问来源于stack exchange,提问作者Mi7ai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 21:51:02