我有一个名为Diem
的SwiftData模型,变量分别为id
、name
和date
.我想从HomeView导航到DiemDetail,但NavigationLink无法工作.Xcode没有显示错误.
struct HomeView: View {
@Query(sort: \Diem.date)
private var diems: [Diem]
var body: some View {
NavigationStack {
DiemsGrid()
.navigationDestination(for: Diem.ID.self) { diemID in
if let diem = diems.first(where: { $0.id == diemID }) {
DiemDetail(diem: diem)
}
}
}
}
}
struct DiemsGrid: View {
@Query(sort: \Diem.date) var diems: [Diem]
var body: some View {
ScrollView(.vertical) {
LazyVGrid(columns: layout, spacing: 0) {
ForEach(diems) { diem in
DiemGridItem(diem: diem)
}
}
}
}
}
struct DiemGridItem: View {
var diem: Diem
var body: some View {
NavigationLink(value: diem.id) {
// View code
}
}
}
和DiemDetail
struct DiemDetail: View {
var diem: Diem
var body: some View {
NavigationStack {
VStack() {
// views
}
.toolbar {
// views
}
}
}
}
Diem
型的都很好.我在DiemDetail和HomeView上确实有.sheet
分,但我不认为这是问题所在.