Есть ли какой-нибудь удобный способ конвертировать Binding<Error?>
в Binding<Bool>
? У меня есть модель просмотра, которая имеет одно из свойств @published var error: Error?
. Я хотел бы показать предупреждение, если есть ошибка. Но Alert
принимает только Binding<Bool>
в качестве параметра.
Я смог выполнить sh, используя другое свойство, но мне кажется, что это не самый эффективный способ.
Код с дополнительным свойством
class SampleViewModel: ObservableObject {
@Published
var error: Error? {
didSet {
isError = error != nil
}
}
@Published
var isError: Bool = false
}
struct SampleView: View {
@ObservedObject
var viewModel: SampleViewModel
var body: some View {
EmptyView().alert(isPresented: $viewModel.isError) { () -> Alert in
Alert(title: Text("Error"), message: Text(viewModel.error!.localizedDescription), dismissButton: .default(Text("OK")))
}
}
}