Flutter 不可变类?

Kya*_*Tun 5 annotations immutability flutter

IDE 将StoreWatcherFlutter Widget 识别为不可变的。那个注释在哪里@immutable?它不在 store_watcher.dart 源代码中。

在此输入图像描述

Gün*_*uer 6

该注解来自meta

文档说

用于注释类 C。指示 C 和 C 的所有子类型必须是不可变的。

如果类的所有实例字段(无论是直接定义的还是继承的)都是最终的,则该类是不可变的。

分析仪等工具可以在以下情况下提供反馈:

该注释与类以外的任何内容相关联,或者具有此注释的类或扩展、实现或混合在具有此注释的类中不是不可变的。

并非所有注释都会产生预期的反馈。有些可能需要启用linter规则。对于某些人来说,它可能只是计划中的,但最终还没有得到分析器或 linter 的支持。

  • `StoreWatcher` 类扩展了 `StatefulWidget`,后者扩展了具有 `@immutable` 注释的 `Widget`。https://github.com/flutter/flutter/blob/f2ab841ac429a7e50f4efdf8ba2668c48560ed93/packages/flutter/lib/src/widgets/framework.dart#L431 (4认同)