我正在尝试View根据功能返回所选菜单项。但它会抛出错误:
协议“View”只能用作通用约束,因为它具有 Self 或关联的类型要求。
这是我的代码:
enum MenuItem {
case Main
case Report
}
struct Menu: View {
@State var activeItem: MenuItem = .Main
private func getActiveView() -> View {
switch activeItem {
case .Main:
return DashboardView()
case .Report:
return ReportView()
}
}
var body: some View {
...
getActiveView()
...
}
}
struct DashboardView: View {
var body: some View {
Text("Contact")
}
}
struct ReportView: View {
var body: some View {
Text("Contact")
}
}
Run Code Online (Sandbox Code Playgroud)
我是新来的SwiftUI。有什么想法如何返回吗View?
SwiftUI 2
这是使用 Xcode 12b / iOS 14 测试的解决方案
struct Menu: View {
@State var activeItem: MenuItem = .Main
// make function ViewBuilder
@ViewBuilder
private func getActiveView() -> some View {
switch activeItem {
case .Main:
DashboardView() // don't use 'return' as it disables ViewBuilder
case .Report:
ReportView()
}
}
var body: some View {
getActiveView()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2497 次 |
| 最近记录: |