Создайте функцию, которая возвращает желаемое представление в ForEach, а также увеличивает переменную.
struct ContentView: View {
@State var a: Int = 1
@State var cellColor: CGFloat = 0.0 // or whatever this is in your code
var body: some View {
List {
ForEach(toDoItems) { toDoItem in
self.makeView(cellColor: self.$cellColor, title: toDoItem.title, orderId: "\(toDoItem.orderId)")
}
}
}
func makeView(cellColor: Binding<CGFloat>, title: String, orderId: String) -> ToDoItemView {
self.a += 1
return ToDoItemView(cellColor: cellColor, title: title, orderId: orderId)
}
}
Вы не указали типы cellColor
, title
и orderId
так что я только что догадался из контекста остальной части вашего кода. Вы должны иметь возможность довольно легко корректировать типы, но если нет, укажите типы переменных в вашем вопросе или комментариях к этому посту, и я смогу обновить свой ответ (но я почти уверен, что правильно понял типы).
Редактировать : Очевидно, cellColor
- это CGFloat
, а не Color
в соответствии с комментарием OP, поэтому я обновил свой код, чтобы отразить это.