2.0中科以使用@StateObject来替换@ObservedObject,区别是当View更新时,@StateObject修饰的对象不会销毁,而使用@ObservedObject可能会意外地释放它所存储的对象。如果希望View刷新的时候不重新生成则使用@StateObject,反之则使用@ObservedObject
使用 —— 代码示例
class User: ObservableObject {
var userID = "1"
}
struct ContentView: View {
@StateObject var user = User()
var body: some View{
Text("userid:\(user.userID)")
}
}
网友评论