【发布时间】:2021-04-30 02:05:15
【问题描述】:
所以我试图在用户选择选择器选项后运行一个函数。
这个想法是用户可以设置一个默认站,所以我需要能够将选择的值发送到一个函数,这样我就可以将它保存在核心数据模块中。
我想知道是否有人知道如何做到这一点。
import SwiftUI
struct SettingsView: View {
var frameworks = ["DRN1", "DRN1 Hits", "DRN1 United", "DRN1 Life"]
@State private var selectedFrameworkIndex = 0
func doSomethingWith(value: String) {
print(value)
}
var body: some View {
NavigationView {
Form {
Section {
Picker(selection: $selectedFrameworkIndex, label: Text("Favorite Station")) {
ForEach(0 ..< frameworks.count) {
Text(self.frameworks[$0])
}
}.onReceive([self.frameworks].publisher.first()) { value in
self.doSomethingWith(value: value)
}
}
}
.navigationBarTitle("Settings")
}
}
}
【问题讨论】:
-
如果你想向后兼容,使用
.onReceive(Just(selectedFrameworkIndex))而不是.onChange