SwiftUI数据流:@Binding双向绑定

双向绑定,用于父子视图的双向传递。修改子视图的Binding值,会触发父视图的State改变重新渲染body。修改父视图的State的值同样也会重新通过Binding传递给子视图,触发重新渲染body。

原理图:

image.png

相关代码

struct ContentView: View{
    @State private var num:Int = 0;
    
    var body: some View{
        //        Text("hello World")
        VStack{
            //添加一个$前缀,就可以将State转为Binding。
            Stepper("计数器", value:$num).padding(50)
            //self.$subCounter.wrappedValue”的用法,
            //Binding对象是一个Binding类型的变量,当只需要使用值的时候,需要访问其.warppedValue属性来访问里面包裹的值。
            Text("\(self.$num.wrappedValue)")//self.num 
        }
       
    }
}


struct BindingTestView: View{
    //双向绑定,用于父子视图的双向传递。修改子视图的Binding值,会触发父视图的State改变重新渲染body。
    //反向亦然
    @Binding var subCounter:Int
    //@State private var num: Int = 0
    var body: some View{
        VStack{
            Stepper("计数器", value: $subCounter)
            Text("\(subCounter)")
        }
       
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容