0

I am trying to display the list of items in editmode after the api call but List does not enter editmode. As a result, regular list of items is shown (not able to select an item). When I have static values, everything works well.

The view:

struct Step1: View {
    @ObservedObject var page: Page

    var body: some View {
        VStack {
            List(page.items, id: \.id, selection: $page.selectedItemStr) { item in
                Text(item.name ?? "")
            }
            .listStyle(.plain)
            .environment(\.editMode, $page.editMode)
            .onAppear {
                page.getItemsAsync()
            }

        }
    }
}

editMode variable:

@Published var editMode: EditMode = .inactive

fetching data from api

func getItemsAsync() {
        ItemService.getItemsAsyncMain() { (result) in
            DispatchQueue.main.sync {
                switch result {
                case .success(let succes):
                    self.items = succes.results
                    self.hasMore = succes.hasMore
                    self.editMode = .active
                case .failure(let failure):
                    self.items = []
                    print(failure)
                }
            }
        }
    }

I would appreciate any suggestions on why my code does not work. Thank you in advance

ilito
  • 89
  • 7

0 Answers0