环境:版本11.0 beta 4(11M374r)
我试图掌握不断发展的List()语法。
以下是UUID的简单列表:
通过测试版4之前的代码
这是我尝试的补救措施和编译器结果。
修复之前的警告后,我创建了另一个错误:
我试图用'@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
}
}
}
有什么补救办法?
答案 0 :(得分:0)
这是一个误导性错误。我很确定您的问题只是错字。应该是List(uuids, id: \.self)
,而不是List(uuids, id: \.id)
。根据您的代码,uuids
只是一个字符串数组,而String
没有属性id
。