Xcode 11 Beta 4 TabbedView绑定问题

时间:2019-07-27 19:20:14

标签: tabs swiftui xcode11

环境:版本11.0 beta 4(11M374r)

我试图掌握不断发展的List()语法。
以下是UUID的简单列表:

enter image description here

通过测试版4之前的代码

enter image description here

这是我尝试的补救措施和编译器结果。
修复之前的警告后,我创建了另一个错误: enter image description here

我试图用'@Binding'替换'@State';这没有用。

这是完整的源代码:

import SwiftUI

enum TabIdentifier {
    case list
    case another
}

struct TabView: View {
    private var uuids: [String] = {
        let ids: [String] = Array(0...5).map { _ in
            UUID().uuidString
        }
        return ids
    }()

    @State private var selectedTab: TabIdentifier = .list

    var body: some View {
        TabbedView(selection: $selectedTab) {
            // ------------------------------------------------------------
            // Tab #1
            NavigationView {
                 List(uuids, id: \.id) { uuid in
                    Text(uuid)
                }.navigationBarTitle(Text("List of UUIDs"))
            }.tabItem {
                Text("List") // ...Tab #1 Label
            }
            .tag(TabIdentifier.list) // ...Tab #1 tag
            // ------------------------------------------------------------
            // Tab #2
            Text("Hello Ric!")
                .tabItem {
                    Text("Another view") // ...Tab #2 Label
            }
            .tag(TabIdentifier.another) // ... Tab #2 Label
        }
    }
}

有什么补救办法?

1 个答案:

答案 0 :(得分:0)

这是一个误导性错误。我很确定您的问题只是错字。应该是List(uuids, id: \.self),而不是List(uuids, id: \.id)。根据您的代码,uuids只是一个字符串数组,而String没有属性id