SwiftUI 中是否可以依赖多个条件?例如显示一个工作表:
.sheet(isPresented: $stateA && $stateB, content: { ... }) // this is not working
Run Code Online (Sandbox Code Playgroud)
或者已知有不同的方法?
不,这是不可能的!isPresented 接受绑定,这意味着如果工作表将被解除,则状态会更新。stateA、stateB 中的哪一个必须改变?或者他们两个?即使有人会尝试定义 && 运算符,其中左侧和右侧是绑定,但这是一个非常糟糕的主意。不要尝试这样做!
将逻辑移动到您的模型中,最好在任何 View 之外。
更新(对于阿斯佩里)
这是有效的代码(带有您的扩展名)
struct ContentView: View {
@State private var isFirst = true
@State private var isSecond = false
var body: some View {
VStack {
Button("TestIt") {
self.isSecond = true
}
.sheet(isPresented: $isFirst && $isSecond) {
Text("A")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试一下!按 TestIt 将打开该工作表。没有“返回”按钮,但您可以使用众所周知的手势将其关闭。并尝试再次按 TestIt ...
| 归档时间: |
|
| 查看次数: |
1880 次 |
| 最近记录: |