具有通用类型元素的数组不能在 ForEach 中使用`无法将类型“[C]”的值转换为预期...`

问题描述 投票:0回答:1

我猜这个错误是否更有帮助,这将是显而易见的,但现在这是我试图编译的代码。

struct MultiselectFilterDropdown<C>: View where C : Identifiable, C.ID : Equatable, C.ID : CustomStringConvertible {
    var allItems: [C]

    var body: some View {
        VStack {
            ForEach(allItems) { item in
                Text(item.description)
            }
        }
    }
}

而且我不知道为什么编译器无法解决它。我看到它说它无法转换为

Range<Int>
Binding<C>
所以我猜测编译器甚至不知道 ForEach 的哪个初始化器最相关。

swift swiftui
1个回答
0
投票

CustomStringConvertible
放错地方了。

struct MultiselectFilterDropdown<C>: View
    where C : Identifiable & CustomStringConvertible,
            C.ID : Equatable {
    var allItems: [C]

    var body: some View {
        VStack {
            ForEach (allItems) { item in
                Text(item.description)
            }
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.