通常在SwiftUI中,由视图拥有并用于渲染它的数据保存在一个带有@State属性包装器的私有属性中。这告诉系统跟踪该属性的变化,以便它知道何时更新视图。
但是…如果该数据从未改变,因此被标记为let
并通过初始化器设置,那么您还需要@State
属性吗?
此外,由于WidgetKit的视图在设计上都是不可变的(更不用说在系统拥有的完全独立/隔离的进程中运行),是否存在使用任何与状态相关的修饰符专门用于Widgets的视图的情况?
如果你的属性永远不会改变,只需声明它不带@State和使用'let'。你可以在创建View时将其值作为参数传递。