Flutter const 与 const 构造函数

2024-01-07

直到今天我还没有看到这个 dart 代码建议。我很高兴遵循最佳实践,但说实话,这在没有构造函数的有状态小部件中出现是没有意义的。我认为这可能与 @immutable 注释有关,但似乎并非如此,而且 dart 文档也没有真正的帮助。

Dart 文档 https://dart-lang.github.io/linter/lints/prefer_const_constructors.html https://dart-lang.github.io/linter/lints/prefer_const_constructors.html

VSCode 中的代码建议

Prefer const literals as parameters of constructors on @immutable classes.dart. || Prefer const with constant constructors

问题:这是我需要关心的事情还是我的插件已打开 VSCode 失控了?

代码示例,其中显示所有小部件。

   Column(
            children: [
              Container(
                margin: EdgeInsets.only(left: 20, right: 20),
                height: 50,
                decoration: BoxDecoration(
                  borderRadius: BorderRadius.all(
                    Radius.circular(30),
                  ),
                  color: Colors.black,
                ),
                child: Center(
                  child: Text(
                    'Create Account',
                    style: TextStyle(
                        color: Colors.white,
                        fontWeight: FontWeight.w600,
                        fontSize: 19),
                  ),
                ),
              ),
              SizedBox(
                height: 20,
              )

完整性筛选


Lint 解释器始终会向您展示即兴编码和性能优化技巧的最佳方法。

例如:在您的代码中,有许多小部件不会重建。因为它是编译时常量,因为它们不依赖于其他动态属性。

Column(
                children: [
                  Container(
                    margin: const EdgeInsets.only(left: 20, right: 20),
                        height: 50,
                        decoration: BoxDecoration(
                          borderRadius: BorderRadius.all(
                            Radius.circular(30),
                          ),
                          color: Colors.black,
                        ),
                        child: const Center( // compile time constant widget
                          child: const Text( // compile time constant widget
                            'Create Account',
                            style: TextStyle(
                                color: Colors.white,
                                fontWeight: FontWeight.w600,
                                fontSize: 19),
                          ),
                        ),
                      ),
                      const SizedBox( // compile time constant widget
                        height: 20,
                      )

假设您的文本小部件值取决于其他一些变量 x,而不是静态值“创建账户”那么您不能在文本小部件之前添加 const 关键字,因为它不是编译时常量值。

即使您不担心这种 lint 建议,也没关系。但是,如果你考虑 lint 的建议,你漫长的开发之旅将会变得更加顺利

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter const 与 const 构造函数 的相关文章

随机推荐

  • ASP.NET 动态生成的 TableRows 在回发之间不会保留

    在 ASPX 中
  • 使用 PHP 的 Salesforce 标注

    抱歉 因为我可能不知道 salesforce API 的术语 我刚刚开始编写一个连接器来与销售人员交互 但我陷入了困境 我有一个要求 每次将新条目添加到潜在客户部分时 我都必须检索几个字段 名字和产品代码 并将其传递给使用 PHP 的不同软
  • Azure Functions 如何将应用程序设置添加到绑定

    我正在尝试使用我的 Azure 函数的应用程序设置添加一些自定义绑定 我只需要从我的设置中接收字符串 我想从我的设置中获取 simpleValue bindings name someValue type stringSetting con
  • MySQL,无法创建 UNIX 套接字 (12)

    SQLSTATE HY000 2001 Can t create UNIX socket 12 在我的本地计算机上 我的项目运行良好 当我将更改推送到服务器后 我收到此错误消息 mysql日志完全是空的 mysql配置 my cnf htt
  • 什么是 LLVM 元数据

    这些可能是非常基本的问题 1 什么是 LLVM 元数据以及如何在我的程序中使用它 我已阅读所有文档 但我不明白如何使用它 2 如何在文件中添加我的个人元数据 提前致谢 最好的信息来源是 2010 年将元数据引入 LLVM IR 的博客文章
  • NSURLRequest 中不支持的 URL

    如果我从终端运行此请求 我可以正常看到 JSON 请求 curl XGET 192 168 0 6 8888 scripts data backend2 index php name all 我的 NSURlRequest 代码是这样的 N
  • SSE 比较内在函数 - 如何从比较中得到 1 或 0?

    我正在尝试使用 SSE 内在函数编写相当于 if 语句的内容 我在用 m128 mm cmplt ps m128 a m128 b 进行比较 a 0xffffffff or 0x0如果比较分别为真或假 我想将这些值转换为 1 和 0 为了做
  • 如何在 wso2 中迭代 JSON 负载并构建响应

    如何通过将 carValue 和 bikeValue 添加到响应数组的 id C 05 B 08 C 07 B 06 中来迭代结果数组并构造响应数组 并保持与描述相同的 desc JSON 负载请求 results desc Blind c
  • 在便携式草莓上安装 Gtk2

    我下载了 strawberry perl 5 12 2 0 portable 和 gtk bundle 2 22 1 20101227 win32 我在某个目录中提取了草莓 perl 并在那里放置了包含 gtk 内容的 gtk 文件夹 在p
  • 以编程方式使用 Sim1 或 Sim2 发送短信的选项

    我有一部带有 2 张 SIM 卡的 Android 手机 我想使用 Sim1 或 Sim2 发送短信 默认情况下 消息是从 sim1 发送的 但我想从 sim2 发送短信 是否可以设置使用Sim1或Sim2发送短信 如果有一个设置选项可以使
  • C++ 中的 getline() - 不需要 _GNU_SOURCE?

    首先 我对 C 还很陌生 我相信getline 不是标准 C 函数 所以 define GNU SOURCE需要使用它 我现在使用 C g 告诉我 GNU SOURCE已经定义 g Wall Werror parser cpp parser
  • 使用 maven 构建 apk 时出现 ClassNotFoundException

    我想在 Android 开发中切换到 Maven 进行构建过程 我跟着http www sonatype com books mvnref book reference android dev sect archetype html htt
  • 在 matplotlib 中,为什么用细线绘图更快?

    我今天偶然发现了这一点 如果线宽小于 1 0 在 matplotlib 中绘制线条似乎要快得多 我只在Mac上测试过这个 但效果似乎很强 例如 如果您尝试此代码 您将发现线宽为 0 5 时数据绘制速度比线宽 1 0 快约 10 倍 impo
  • 如何使 org-protocol 在 Openbox 上工作?

    I tried 说明 http orgmode org worg org contrib org protocol html 我正在使用 FirefoxLubuntu https en wikipedia org wiki Lubuntu
  • 在c++中将高斯曲线拟合到某个直方图峰值

    我有两个关于将高斯曲线拟合到直方图峰值的问题 我的第一个问题是一个非常基本的问题 如何将高斯曲线拟合到整个直方图 这是否仅仅意味着我必须找出并计算直方图的平均值 和偏差 并将它们放入高斯曲线的公式中 下面的例子正确吗 假设 仅作为示例 我有
  • CSS 弹性框最后一个空格被删除

    通过设置display的一个项目到flex我发现最后一个空格已从文本字符串中删除 div class has flex Some text a href link Link a div Becomes div class has flex
  • 有没有办法只在 Tomcat/Wildfly/Glassfish 启动时运行方法/类?

    我需要在 Tomcat 启动时删除临时文件 包含临时文件的文件夹的传递位于 applicationContext xml 中 有没有办法只在 Tomcat 启动时运行方法 类 你可以写一个ServletContextListener它从调用
  • iOS SDK 中的通知中心与委托

    为什么 Apple 选择使用委派来进行 SDK 对象之间的某些通信 并为其他对象将通知发布到通知中心 特别是 我正在考虑来自 UIWindow 的一组键盘外观通知 是否因为通知中心系统意味着多个对象可以使用键盘外观操作作为触发器来更改其状态
  • Clojure - 返回类型的调度? (与 Haskell 类型类一样具有表现力)

    这是一个关于 Clojure 与 Haskell 等其他语言的表达能力的问题 更广泛的问题是解决表达问题 http en wikipedia org wiki Expression problem 这个问题 https stackoverf
  • Flutter const 与 const 构造函数

    直到今天我还没有看到这个 dart 代码建议 我很高兴遵循最佳实践 但说实话 这在没有构造函数的有状态小部件中出现是没有意义的 我认为这可能与 immutable 注释有关 但似乎并非如此 而且 dart 文档也没有真正的帮助 Dart 文