Flutter开发警告Constructors in ‘@immutable‘ classes should be declared as ‘const‘

news2024/11/17 23:32:31

在这里插入图片描述

文章目录

  • 警告信息
    • 报错代码
    • 警告原因
    • 修改后的代码

警告信息

Flutter开发遇到如下警告
Constructors in ‘@immutable’ classes should be declared as ‘const’.

报错代码

class TaskWidget extends StatefulWidget {
  final String title;
  final bool isChecked;
  final int order;

  TaskWidget({
    required this.title,
    required this.isChecked,
    required this.order,
    Key? key,
  }) : super(key: key);

  @override
  State<TaskWidget> createState() => _TaskWidgetState();
}

警告原因

这个警告是由于在Flutter中,如果你定义的类是不可变的额,你最好用@immutable注解标记标记下,即使你不标记,代码检测也会检测出来。当你使用@immutable注解标记一个类时,它要求该类的构造函数应该声明为const构造函数。@immutable是一个元数据注解,用于指示类是不可变的,这样的类在某些情况下可以提供性能优势。

在Dart中,const构造函数表示该构造函数创建的对象是不可变的,这样的对象可以在编译时进行常量折叠,从而提高性能。当你标记一个类为@immutable时,Flutter希望你的构造函数也是const的,以确保对象的不可变性。

例如,以下是一个简单的使用@immutable注解的类:


class MyImmutableClass {
  final int value;

  const MyImmutableClass(this.value);
}

在上面的例子中,构造函数被声明为const,这符合@immutable的要求。如果你的构造函数不是const的,就会收到该警告。在某些情况下,这可能是因为Flutter无法确定对象是否是不可变的,因此它会发出警告,以提醒你可能需要将构造函数声明为const。

修改后的代码

@immutable
class TaskWidget extends StatefulWidget {
  final String title;
  final bool isChecked;
  final int order;

  const TaskWidget({
    required this.title,
    required this.isChecked,
    required this.order,
    Key? key,
  }) : super(key: key);

  @override
  State<TaskWidget> createState() => _TaskWidgetState();
}

结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1247135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD9528学习笔记

前言 AD9528是ADI的一款时钟芯片&#xff0c;由2-stage PLL组成&#xff0c;并且集成JESD204B/JESD204C SYSREF信号发生器&#xff0c;SYSREF发生器输出单次、N次或连续信号&#xff0c;并与PLL1和PLL2输出同步&#xff0c;从而可以实现多器件之间的同步。 AD9528总共有14路输…

电源模块重轻载变化测试的测试目的、测试标准、测试方法介绍

电源自动测试系统针对电源模块的各项测试项目提供最合适的测试方案&#xff0c;解决测试需求&#xff0c;提高测试效能。重轻载变化测试是电源模块测试的项目之一&#xff0c;是为了检测负载变化时输出电压的变化情况。为此&#xff0c;纳米软件将介绍电源重轻载变化测试的方法…

盘点43个Python登录第三方源码Python爱好者不容错过

盘点43个Python登录第三方源码Python爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 项目名称 bnuz中国电信校园网模拟登录&#xff0c;python selenium BNUZ教务系统认证爬虫Python语言实现&#xff0c;你可以用…

为什么在Pycharm中使用Pandas画图,却不显示?

问题描述&#xff1a; 在 Pycharm 中使用 Pandas 的 plot() 方法画图&#xff0c;却不显示图像&#xff0c;源代码如下&#xff1a; import pandas as pd import numpy as np# 从文件中读取数据 starbucks pd.read_csv(./file_csv/directory.csv)# 按照国家分组&#xff0c;…

【T3】畅捷通T3登录时操作日期的日历中日期与星期对应关系错误。

【问题描述】 畅捷通T3软件登录的时候&#xff0c; 在选择操作日期位置&#xff0c;点击出日历后发现&#xff1a; 几月几日和星期几是对不上的。但是查看电脑系统右下角日期&#xff0c;是正确的。 例如&#xff1a;2023年11月24日应该是星期五&#xff0c;这里反而是星期三。…

如何去掉图片水印不伤原图?无痕去水印教程分享!

如何去掉图片水印不伤原图&#xff1f;在电商广告设计和营销领域&#xff0c;水印已经成为一种常见的版权保护手段。不过&#xff0c;水印也给淘宝商家带来了一些困扰。那么如何去掉图片水印还能不伤原图呢&#xff0c;接下来&#xff0c;将分享简单好用的无痕去水印教程&#…

高级IO—select

高级IO—select 文章目录 高级IO—selectIO的概念 五种IO模型阻塞IO非阻塞IO信号驱动IOIO多路转接异步IO I/O多路转接之select IO的概念 通常指数据在内部存储器和外部存储器或其他周边设备之间的输入和输出。输入是系统接收的信号或数据&#xff0c;输出则是从其发送的信号或…

python中range函数的用法

range() 是Python的一个内置函数。语法格式为&#xff1a;range(start, stop, step) start是初始值&#xff0c;stop是最终值&#xff0c;step是步长。range()函数仅适用于整数&#xff0c;所有参数都必须是整数。步长值可以为正数或负数&#xff0c;不得为零。使用range函数时…

Mintegral业务再创新高,汇量科技基建成果已然显现?

游戏出海经过几年的跨越式发展&#xff0c;红海特征日益明显。 《2023中国游戏App出海驱动力报告》显示&#xff0c;2022年1月至2023年6月&#xff0c;我国约17000款游戏类App出海&#xff0c;安装总量超过240亿次。与此同时&#xff0c;Android和iOS侧的安装量在2022年三季度…

ONNX实践系列-修改yolov5-seg的proto分支输出shape

一、目标 本文主要介绍要将原始yolov5分割的输出掩膜从[b,c,h,.w]修改为[b, h, w, c] 原来的: 目标的: 代码如下: Descripttion: version: @Company: WT-XM Author: yang jinyi Date: 2023-09-08 11:26:28 LastEditors: yang jinyi LastEditTime: 2023-09-08 11:48:01 …

【深度学习】因果推断与机器学习

2023年初是人工智能爆发的里程碑式的重要阶段&#xff0c;以OpenAI研发的GPT为代表的大模型大行其道&#xff0c;NLP领域的ChatGPT模型火爆一时&#xff0c;引发了全民热议。而最新更新的GPT-4更是实现了大型多模态模型的飞跃式提升&#xff0c;它能够同时接受图像和文本的输入…

2023 Unite 大会关于“Muse“ AI 大模型训练

Unity Muse 借助强大的 AI 能力帮助你探索、构思和迭代&#xff0c;其中包括纹理和精灵两项功能&#xff0c;可将自然语言和视觉输入转化为可用资产。 将 AI 引入 Unity Editor 中的 Muse 提供了更快将想法转化为实物的选项。您可以调整并使用文本提示、图案、颜色和草图&…

全面预算管理,帮助企业财务团队冲破市场挑战

在实现企业财务发展的必经之路上&#xff0c;大多数财务专业人士会通过实施全面预算管理策略&#xff0c;为部门乃至整个组织建立一个用于数据管理和预测分析的财务模型&#xff0c;旨在影响和监控业务决策和变化趋势。全面预算管理通常包括历史数据分析和关于未来走向更详细的…

加入华为云鲲鹏极简开发创造营,激活创造力,探索无限可能!

数字经济时代&#xff0c;速度、效率、质量安全已成为各行业告诉拓新发展的关键&#xff0c;华为云不断打磨敏捷安全开发的软件平台&#xff0c;为更高效率的生产力变革积蓄能量。 在刚刚过去不久的2023华为全联接大会上&#xff0c;华为最新发布了华为云CodeArts与鲲鹏DevKit…

鸿蒙开发之android开发人员指南《基础知识》

基于华为鸿蒙未来可能不再兼容android应用&#xff0c;推出鸿蒙开发系列文档&#xff0c;帮助android开发人员快速上手鸿蒙应用开发。 1. 鸿蒙使用什么基础语言开发&#xff1f; ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风…

别再为仓库库存损耗头疼了!掌握6S必备装备管理轻松降低损失!

仓库库存损耗是很多装配制造企业头疼的问题&#xff0c;不仅会导致企业资产流失&#xff0c;还可能会对企业的生产和运营产生严重影响&#xff0c;因此&#xff0c;企业应认真分析导致损耗的原因&#xff0c;并有针对性地采取策略&#xff0c;降低库存损耗&#xff0c;提高企业…

JS 中的随机数方法 Math.random()

有时候项目中遇到一个功能需要随机返回多条不重复的数据&#xff0c;也可以是拿了就用&#xff0c;下次再需要时已经忘记如何使用了。 js中的生成随机数操作是基于 Math 方法下的 random() 方法 Math.random() &#xff1a; 随机获取范围内的一个数 &#xff08; 精确到小数点…

Mac系统-tomcat部署war包指定jdk版本步骤

背景: 因本机jdk安装了好几个版本, 有 1.8、 11 、17 , 现在想要启动tomcat的时候指定11版本 步骤如下: 1、 在官网下载了“apache-tomcat-9.0.83.tar.gz” 这个包. 官网地址: Apache Tomcat - Apache Tomcat 9 Software Downloads 2、解压缩, 得到tomcat目录: /Users/..…

三菱PLC定时中断应用编程(计数器+比较器)

三菱PLC如何开启定时中断可以查看下面文章链接: PLC定时中断程序应用注意事项(西门子三菱信捷)_plc设置断点之后会怎样_RXXW_Dor的博客-CSDN博客文章浏览阅读2.5k次,点赞5次,收藏6次。首先我们了解下什么是中断。中断(打断的意思),在PLC执行当前程序时,由于系统出现了…

Maxwell安装部署消费到kafka集群

1.上传安装包到linux系统上面 2.解压安装包到安装目录下&#xff0c;并且重命名 [rootVM-4-10-centos package]# tar -zxvf maxwell-1.29.2.tar.gz -C /opt/software/3.配置mysql 增加以下配置 #数据库id server-id 1 #启动binlog&#xff0c;该参数的值会作为binlog的文件…