Aar*_*her 7 swift swiftui swiftui-navigationstack
我在尝试使用新的 NavigationStack 时有一个小代码示例,但出现错误:A NavigationLink ispresenting a value of type \xe2\x80\x9cTransactionRoute\xe2\x80\x9d but there is nomatching navigation destination from链接的位置。链接无法激活。
\n我究竟做错了什么?
\n import SwiftUI\n\n struct TransactionRoute: Identifiable {\n let id = UUID()\n let realm: TransactionRealm\n let transaction: String?\n }\n\n extension TransactionRoute: Equatable, Hashable {\n static func == (lhs: TransactionRoute, rhs: TransactionRoute) -> Bool {\n lhs.id == rhs.id\n }\n\n public func hash(into hasher: inout Hasher) {\n hasher.combine(id)\n }\n }\n\n enum TransactionRealm: Int {\n case basic\n case upcoming\n case recurring\n }\n\n struct ContentView: View {\n @State var navigationPath = NavigationPath()\n\n var body: some View {\n NavigationStack(path: $navigationPath) {\n VStack {\n Image(systemName: "globe")\n .imageScale(.large)\n .foregroundColor(.accentColor)\n .padding(.bottom, 24)\n .onTapGesture {\n navigationPath.append(TransactionRoute(realm: .basic, transaction: nil))\n }\n Text("Hello, world!")\n .onTapGesture {\n navigationPath.append(TransactionRoute(realm: .upcoming, transaction: nil))\n }\n }\n }\n .navigationDestination(for: TransactionRoute.self) { route in\n switch route.realm {\n case .basic:\n Text("Basic")\n\n case .upcoming:\n Text("Upcoming")\n\n case .recurring:\n Text("Recurring")\n }\n }\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n
ahe*_*eze 19
与大多数其他导航修饰符(navigationTitle、navigationBarTitleDisplayMode)一样,navigationDestination位于NavigationStack内部。可以将其视为 NavigationStack 从其大括号内获取信息。
NavigationStack(path: $navigationPath) {
VStack {
/// ...
}
.navigationDestination(for: TransactionRoute.self) { route in
switch route.realm {
case .basic:
Text("Basic")
case .upcoming:
Text("Upcoming")
case .recurring:
Text("Recurring")
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3468 次 |
| 最近记录: |