Hap*_*llo 7 user-interface swift swiftui swiftui-navigationlink
我有一个分段选择器来过滤 ForEach 中的列表行,但 NavigationLinks 在过滤时停止工作,它们具有点击动画但从不改变视图。我在甲板上使用 CoreData。当我点击标准中的行时,它们正常工作,然后我点击 Wild 并且 NavigationLinks 仍然有效,但是当我回到标准时会发生这种情况:
这是我的代码:
ForEach(decks.filter{$0.format == formats[selectedFormat]}, id: \.self) { deck in
HStack {
ZStack {
DeckRow(deck: deck)
NavigationLink(destination: DeckView()) {
EmptyView()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
提供的代码不可测试,但通过阅读假设问题的原因是在相同的导航链接中,请尝试以下操作(这将导致更新过滤链接)
ZStack {
DeckRow(deck: deck)
NavigationLink(destination: DeckView()) {
EmptyView()
}.id(deck) // << here !!
}
Run Code Online (Sandbox Code Playgroud)
或者,正如预期的那样,使其DeckView依赖于deck,例如DeckView(model: deck),这也使每个导航链接都是唯一的并且可以在过滤器上刷新。
| 归档时间: |
|
| 查看次数: |
412 次 |
| 最近记录: |