ios - 在您单击以在 iPad 上显示侧边栏之前,三列导航视图不会更新
问题描述
鉴于此观点:
struct ContentView: View {
@State var link1Active: Bool = false
var body: some View {
NavigationView {
List {
NavigationLink(destination: Text("Link1 Destination"), isActive: $link1Active) {
Text("Click me 1")
}
NavigationLink(destination: Text("Link2 Destination")) {
Text("Click me 2")
}
}
Text("View 1")
Text("View 2")
}
.onAppear {
link1Active = true
print("in here!")
}
}
}
当应用程序在 iPad 上以横向模式启动时,我看到两列“View 1”和“View2”。
我希望在左栏中看到“Link 1 Destination”,但未显示。
但是,当我单击切换侧边栏按钮时,“视图 1”被替换。
这是在 swiftui 中设置视图的方式的问题吗?
解决方案
问题很简单,当调用NavigationLink
时 不存在。设置为 true (我通过在您的语句中打印值来验证这一点),但在主视图打开并显示在屏幕上之前,没有任何内容使用它。我真的不认为这是一个真正的“修复”,但你要显示目的地的唯一方法很简单,条件是:.onAppear
.onAppear
link1Active
print()
.onAppear
List
(!link1Active ? Text("View 1") : Text("Link1 Destination"))
由于这是一个最小的可重现示例,我不确定您的用例,但我认为您需要重新考虑如何展示您的观点。
推荐阅读
- mongodb - 天鹅座订阅猎户座
- java - 在 JSP 中动态包含网站组件
- c# - MVVM 子类属性绑定
- symfony - 如何从 Doctrine 实体(Symfony 4)加载表单选项?
- c# - 当按下 Button1 的边缘时,MessageBox 有时不会打开
- intellij-idea - 如何使用 super dev (intellij) 调试 gwt
- python - 派生类的类/元类方法装饰器
- python - 基于值Python DataFrame添加计数器
- python - 对熊猫数据框进行子集化并保留原始大小
- hdfs - Hadoop/HDFS 3.1.1(在 Java 11 上)加载文件资源管理器时 Web UI 崩溃?