SwiftUI-列表给出错误“;表达式类型不明确,没有更多上下文”;
我正在尝试实现一个具有多个选择的列表 代码如下:SwiftUI-列表给出错误“;表达式类型不明确,没有更多上下文”;,swiftui,swiftui-list,Swiftui,Swiftui List,我正在尝试实现一个具有多个选择的列表 代码如下: import SwiftUI struct MultiSelectionWithEditButton : View { var items = ["One","Two", "Three"] @State var selectedRows = Set<String>() var body: some View { NavigationView { List((item
import SwiftUI
struct MultiSelectionWithEditButton : View {
var items = ["One","Two", "Three"]
@State var selectedRows = Set<String>()
var body: some View {
NavigationView {
List((items, id: \.self), selection: $selectedRows) { name in
Text(name)
.font(.title)
.fontWeight(.bold)
}
.navigationBarItems(trailing: EditButton())
.navigationBarTitle(Text("Selected \(selectedRows.count) rows"))
}
}
}
#if DEBUG
struct MultiSelectionWithEditButton_Previews : PreviewProvider {
static var previews: some View {
MultiSelectionWithEditButton()
}
}
#endif
导入快捷界面
结构MultiSelectionWithEditButton:视图{
变量项=[“一”、“二”、“三”]
@状态变量selectedRows=Set()
var body:一些观点{
导航视图{
列表((项,id:\.self),选择:$selectedRows){name in
文本(名称)
.font(.title)
.fontWeight(.粗体)
}
.navigationBarItems(尾部:EditButton())
.navigationBarTitle(文本(“Selected\(selectedRows.count)行”))
}
}
}
#如果调试
带编辑按钮的结构多重选择\u预览:PreviewProvider{
静态var预览:一些视图{
MultiSelectionWithEditButton()
}
}
#恩迪夫
但我得到的错误是:
“表达式类型不明确,没有更多上下文”
如果有人能帮忙,我将不胜感激!:) 问题在您的
列表中。将其更改为List
,内部带有ForEach
,如下所示:
struct MultiSelectionWithEditButton : View {
var items = ["One","Two", "Three"]
@State var selectedRows = Set<String>()
var body: some View {
NavigationView {
List(selection: $selectedRows){
ForEach(items, id: \.self) { name in
Text(name)
.font(.title)
.fontWeight(.bold)
}
}
.navigationBarItems(trailing: EditButton())
.navigationBarTitle(Text("Selected \(selectedRows.count) rows"))
}
}
}
struct MultiSelectionWithEditButton:View{
变量项=[“一”、“二”、“三”]
@状态变量selectedRows=Set()
var body:一些观点{
导航视图{
列表(选择:$selectedRows){
ForEach(items,id:\.self){name in
文本(名称)
.font(.title)
.fontWeight(.粗体)
}
}
.navigationBarItems(尾部:EditButton())
.navigationBarTitle(文本(“Selected\(selectedRows.count)行”))
}
}
}