当前位置: 首页 > news >正文

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

在这里插入图片描述

文章目录

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

警告信息

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);@overrideState<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);@overrideState<TaskWidget> createState() => _TaskWidgetState();
}

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

相关文章:

  • 想当老师应该去学什么专业
  • 【LM、LLM】浅尝二叉树在前馈神经网络上的应用
  • 鸿蒙4.0开发笔记之ArkTs语言基础与基本组件结构(四)
  • Another app is currently holding the yum lock; waiting for it to exit...
  • size和shape的区别与联系
  • 浅谈STL中的分配器
  • 禁止指定电脑程序运行的2种方法
  • 【Redis】前言--redis产生的背景以及过程
  • Java面试-微服务篇-SpringCloud
  • Git使用详解
  • 智慧楼宇可视化视频综合管理系统,助力楼宇高效安全运行
  • 【opencv】计算机视觉:实时目标追踪
  • 生态对对碰|华为OceanStor闪存存储与OceanBase完成兼容性互认证!
  • 微服务负载均衡器Ribbon
  • win10戴尔电脑安装操作系统遇到的问题MBR分区表只能安装GPT磁盘
  • 阿里云服务器(vgn7i-vws) anaconda(py39)+pytorch1.12.0(cu113)
  • 使用 STM32F7 和 TensorFlow Lite 开发低功耗人脸识别设备
  • 【wireshark】基础学习
  • 使用Java连接Hbase
  • OCR是什么意思,有哪些好用的OCR识别软件?
  • Springmvc实现增删改差
  • CentOS 7 使用cJSON 库
  • Linux——使用kill结束进程并恢复进程
  • 【Linux虚拟内存的配置】
  • 基于C#实现外排序
  • HTML CSS登录网页设计
  • dos 命令 判断路径中包含某字符并移动文件
  • electron+vue3全家桶+vite项目搭建【26】electron本地安装Vue Devtool插件,安装浏览器扩展
  • Modbus TCP
  • 基于人工兔算法优化概率神经网络PNN的分类预测 - 附代码