【问题标题】:SwiftUI - List gives error "Type of expression is ambiguous without more context"SwiftUI - 列表给出错误“表达式类型不明确,没有更多上下文”
【发布时间】:2019-09-23 13:12:34
【问题描述】:

我正在尝试实现一个多选列表。

这是代码:

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

但我得到以下错误:

“没有更多上下文,表达式的类型是模棱两可的”

如果有人可以提供帮助,不胜感激! :)

【问题讨论】:

    标签: swiftui swiftui-list


    【解决方案1】:

    问题在于您的Lists init。将其更改为 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"))
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      相关资源
      最近更新 更多