Now menu popup not removed after deleting all the Item from the List
import SwiftUI
struct Item: Identifiable {
let id: String
let value: String
init(id: String = UUID().uuidString, value: String) {
self.id = id
self.value = value
}
}
import Combine
class ViewModel: ObservableObject {
@Published var items: [Item] = [Item(value: "1"),Item(value: "2")]
var cancellable: Set<AnyCancellable> = []
func startTimer() {
Timer.publish(every: 4, on: .main, in: .default)
.autoconnect().map { timer in
String(timer.timeIntervalSince1970)
}
.receive(on: RunLoop.main)
.sink { time in
print(time)
self.items = []
}
.store(in: &cancellable)
}
}
struct ContentView: View {
@ObservedObject var viewModel = ViewModel()
var body: some View {
VStack {
List(viewModel.items) { x in
ListWithPopUp(viewModel: ListWithPopUpViewModel(x: UUID().uuidString))
}
}
.onAppear {
viewModel.startTimer()
}
}
}
import SwiftUI
import Combine
class ListWithPopUpViewModel: ObservableObject {
let x: String
init(x: String) {
self.x = x
}
}
struct ListWithPopUp: View {
@ObservedObject var viewModel: ListWithPopUpViewModel
var body: some View {
Menu {
Text(viewModel.x)
} label: {
Text("Menu \(viewModel.x)")
}
}
}```