美文网首页SwiftUI
SwiftUI属性装饰器(@EnvironmentObject)

SwiftUI属性装饰器(@EnvironmentObject)

作者: fanren | 来源:发表于2021-06-10 09:16 被阅读0次

    一、简介

    @EnvironmentObject@ObservedObject类似;
    只是model在视图内引入的方式不同

    二、代码

    // model
    class EnvironmentShopEntity: ObservableObject {
        @Published var count: Int = 0
        
        func increase() {
            self.count += 1
        }
        
        func decrease() {
            if self.count > 0 {
                self.count -= 1
            }
        }
    }
    
    // 视图
    struct EnvironmentShopView: View {
        // 使用@EnvironmentObject装饰model对象
        @EnvironmentObject var entity: EnvironmentShopEntity
        
        var body: some View {
            VStack {
                Text("商品个数: \(entity.count)").padding()
                Button(action: {
                    self.entity.increase()
                }, label: {
                    Text("增加")
                }).padding()
                Button(action: {
                    self.entity.decrease()
                }, label: {
                    Text("减少")
                }).padding()
            }
        }
    }
    
    // 使用视图
    let entity = EnvironmentShopEntity()
    EnvironmentShopView().environmentObject(entity)
    

    三、实例

    实例代码

    相关文章

      网友评论

        本文标题:SwiftUI属性装饰器(@EnvironmentObject)

        本文链接:https://www.haomeiwen.com/subject/viqjeltx.html