SwiftUI Picker onChange or equivalent?

后端 未结 7 1813
南旧
南旧 2020-12-01 09:31

I want to change some other unrelated @State variable when a Picker gets changed but there is no onChanged and it\'s not possible to p

7条回答
  •  没有蜡笔的小新
    2020-12-01 09:55

    I think this is simpler solution:

    @State private var pickerIndex = 0
    var yourData = ["Item 1", "Item 2", "Item 3"]
    
    // USE this if needed to notify parent
    @Binding var notifyParentOnChangeIndex: Int    
    
    var body: some View {
    
       let pi = Binding(get: {
    
                return self.pickerIndex
    
            }, set: {
    
                self.pickerIndex = $0
    
                // TODO: DO YOUR STUFF HERE
                // TODO: DO YOUR STUFF HERE
                // TODO: DO YOUR STUFF HERE
    
                // USE this if needed to notify parent
                self.notifyParentOnChangeIndex = $0
    
            })
    
       return VStack{
    
                Picker(selection: pi, label: Text("Yolo")) {
                    ForEach(self.yourData.indices) {
                        Text(self.yourData[$0])
                    }
                }
                .pickerStyle(WheelPickerStyle())
                .padding()
    
       }
    
    }
    

提交回复
热议问题