swift - SwiftUI Initialzier 要求 String 符合 Identifiable
问题描述
我第一次尝试编写一些 SwiftUI 代码,但在尝试制作简单的表格视图时遇到了问题。在这段代码teams
中是一个数组String
,但是List
给了我以下错误:Initializer 'init(_:rowContent:)' requires that 'String' conform to 'Identifiable'
var body: some View {
let teams = getTeams()
Text("Hello there")
List(teams) { team in
}
}
有人知道这意味着什么吗?
解决方案
的参数List
必须是唯一的,这就是Identifiable
协议的目的
你可以做
List(teams, id: \.self) { team in
但是你有责任确保字符串是唯一的。如果不是,你会得到意想不到的行为。
更好的是使用具有唯一id
符合的自定义结构Identifiable