struct ForEach
используется только для отображения представлений:
/// A structure that computes views on demand from an underlying collection of
/// of identified data.
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
public struct ForEach<Data, ID, Content> where Data : RandomAccessCollection, ID : Hashable { ... }
например, вы можете использовать его для отображения строк некоторых List
List {
ForEach(dateList.indices, id: \.self) { dateIndex in Text("\(self.dateList[dateIndex])") }
}
, это не о вычислениях переменная типа que
, вы должны извлечь это вычисление в некоторую функцию и вызвать ее, например, из onAppear
Вот небольшой пример различия ForEach
и forEach
:
struct SomeLoopData: View {
@State var dates = ["2020/02/28", "2020/02/29"]
var body: some View {
List {
ForEach(dates.indices) { index in Text("\(self.dates[index])") }
.onAppear {
self.compute()
}
}
}
func compute() {
dates.indices.forEach { index in
print(dates[index])
}
}
}