SwiftUI选取器未更新
我试图构建一个包含多个选择器的表单。第一个选择器将显示现有数据。第二个选择器将根据第一个选择器的选择从API获取数据。但是,当我打开表单时,第一个选择器工作,而第二个选择器不显示任何内容。即使我从第一个选择器中选择了其他选择,我也可以获得数据,但第二个选择器没有按照我的预期进行更新。因此,主要问题是如何使第二个选择器获取数据,因为第一个选择器中有一个默认选择。在第一个选择器中进行选择后,导致第二个选择器没有更新的问题是什么SwiftUI选取器未更新,swiftui,ios14,Swiftui,Ios14,我试图构建一个包含多个选择器的表单。第一个选择器将显示现有数据。第二个选择器将根据第一个选择器的选择从API获取数据。但是,当我打开表单时,第一个选择器工作,而第二个选择器不显示任何内容。即使我从第一个选择器中选择了其他选择,我也可以获得数据,但第二个选择器没有按照我的预期进行更新。因此,主要问题是如何使第二个选择器获取数据,因为第一个选择器中有一个默认选择。在第一个选择器中进行选择后,导致第二个选择器没有更新的问题是什么 struct addBooking : View { @Stat
struct addBooking : View {
@State var shops = ShopJSON.shared.shops //existing data
@State var selectedShopIndex = 0
@State var selectedOutletIndex = 0
@ObservedObject var bookingOutletJSON = BookingOutletJSON()
var body: some View {
NavigationView{
Form {
Picker(selection: $selectedShopIndex, label: Text("Select Shop")) {
ForEach(0 ..< shops.count) {
Text(self.shops[$0].name!)
}
}
.onChange(of: selectedShopIndex, perform: { (value) in
print("Shop changed")
bookingOutletJSON.getOutlet(selectedShopId: shops[value].shopID!)
})
Picker(selection: $selectedOutletIndex, label: Text("Select Outlet")){
ForEach(0 ..< bookingOutletJSON.outlets.count) {
Text(self.bookingOutletJSON.outlets[$0].location!)
}
}
if bookingOutletJSON.outlets.count != 0 {
Text("\(bookingOutletJSON.outlets[0].location!)")
}
尝试使用另一个ForEach构造函数
Picker(selection: $selectedOutletIndex, label: Text("Select Outlet")){
ForEach(bookingOutletJSON.outlets.indices, id: \.self) {
Text(self.bookingOutletJSON.outlets[$0].location!)
}
}
Picker(selection: $selectedOutletIndex, label: Text("Select Outlet")){
ForEach(bookingOutletJSON.outlets.indices, id: \.self) {
Text(self.bookingOutletJSON.outlets[$0].location!)
}
}