我在scrollView内有一个segmentedControl,并希望根据它显示不同的视图。出于某种原因,如果ScrollView位于其中,则不会重新加载视图;如果位于外部,则BitView将重新加载。
这有效
@State private var selectedIndex = 0
var body: some View {
NavigationView {
if selectedIndex == 0 {
ScrollView {
Standings.Championship.UI.SegmentedControl(selectedIndex: $selectedIndex).padding()
Standings.Drivers.List()
}
.navigationBarTitle(Text("Standings"))
}
else {
ScrollView {
Standings.Championship.UI.SegmentedControl(selectedIndex: $selectedIndex).padding()
Standings.Teams.List()
}
.navigationBarTitle(Text("Standings"))
}
}
}
这不起作用
@State private var selectedIndex = 0
var body: some View {
NavigationView {
ScrollView {
Standings.Championship.UI.SegmentedControl(selectedIndex: $selectedIndex).padding()
if selectedIndex == 0 {
Standings.Drivers.List()
}
else {
Standings.Teams.List()
}
}.navigationBarTitle(Text("Standings"))
}
}
知道为什么吗?
更新(解决方案)
添加VStack有帮助。这有效:
VStack {
if selectedIndex == 0 {
Standings.Drivers.List()
}
else {
Standings.Teams.List()
}
}