我正在尝试在SwiftUI中创建一个类似下面代码的菜单视图的View结构体。但是我遇到了一个错误,"Failed to produce diagnostic for expression; please submit a bug report"。我不知道我做错了什么。
明确一下,我想创建一个结构体,可以输入一个枚举,一个文本字符串和一个按钮操作,并返回一个菜单,以使contentView更易读。
希望你们能帮助我。干杯。
明确一下,我想创建一个结构体,可以输入一个枚举,一个文本字符串和一个按钮操作,并返回一个菜单,以使contentView更易读。
希望你们能帮助我。干杯。
struct AddObjectMenuView<T: RawRepresentable, CaseIterable>: View {
let labelText: String
let someEnum: T
let function: () -> Void
var body: some View { // Getting error here
Menu {
ForEach(someEnum.allCases) { field in
Button(action: function) {
VStack {
Text(field.rawValue).padding()
}
}
}
} label: {
Text(labelText).padding().background(RoundedRectangle(cornerRadius: 10).foregroundColor(.clear))
}
.foregroundColor(Color("lightBlue"))
}
}
然后在我的ContentView中像这样使用它:
AddObjectMenuView(labelText: "Hello", someEnum: SomeEnum, function: {
// Do something
})
struct AddObjectMenuView<T: RawRepresentable, CaseIterable>: View where T.RawValue == String {
- Leo Dabus