【发布时间】:2020-05-08 07:19:59
【问题描述】:
尝试关注this discussion,我执行了Yurii Kotov的建议:
struct ContentView: View {
@State private var index = 0
@ViewBuilder
var body: some View {
if index == 0 {
MainView()
} else {
LoginView()
}
}
它工作正常。但如果我尝试改用 switch 语句:
switch index {
case 0: MainView()
case 1: LoginView()
default:
print("# error in switch")
}
什么都没有发生。没有错误警报,但也根本没有结果。有人可以帮忙吗?
【问题讨论】:
-
您的 switch 语句与 if 的作用不同。如果你写一个等效的 switch 语句,那么它应该可以工作。
-
好的,Sweeper,但它有什么问题?
-
想一想
index为2 的情况,如果是怎么办?交换机会做什么? -
这是一个有趣的讨论,但我已经将索引定义为 0,所以切换到 1000 发生的事情应该没有意义。它应该匹配 0 的情况。恕我直言。
-
每当
@State更改时,您的视图就会更新,这意味着body中的所有内容都会重新评估。
标签: swift if-statement switch-statement swiftui