Я создал цикл ForEach, и теперь мне нужна переменная, которая уже существует до цикла ForEach. Я поместил переменную в структуру базового представления.
Я пробовал что-то вроде @State
, но дело в том, что это приведет к задержке с переопределением переменной. Таким образом, цикл ForEach выполняется до изменения переменной.
@State var Bol:Bool = true
var DatesThatAreNewer = Date()
var body: some View {
NavigationView{
List{
ForEach(self.dayActivities, id: \.self){dayActivity -> AnyView in
//NewDays(day: dayActivity.date!)
let isNewDay = (dayActivity.date!, formatter: ContentView.self.Day)
if self.Bol{
let DatesThatAreNewer = Date()
}
let oldDateType = self.Bol ? (self.OldDate.asDate, formatter: ContentView.self.Day) : (self.DatesThatAreNewer, formatter: ContentView.self.Day)
//var isOldDate = (oldDateType, formatter: ContentView.self.Day)
print("------------- S1")
print(asStringDate(date: dayActivity.date!))
print(asStringDate(date: self.DatesThatAreNewer))
print("-------------")
self.Bol = false
if (asStringDate(date: dayActivity.date!) == asStringDate(date: self.DatesThatAreNewer)){
print("Hello world 1")
print(oldDateType)
print(isNewDay)
return AnyView(DayActivityView(name: dayActivity.name!, date: dayActivity.date!))
}else{
print("Hello world 2")
print(oldDateType)
print(isNewDay)
print(dayActivity.name!)
DatesThatAreNewer = dayActivity.date!
print(asStringDate(date: self.DatesThatAreNewer))
//isOldDate = isNewDay
return AnyView(Section(header: Text(String(asString(date: dayActivity.date!)))){
DayActivityView(name: dayActivity.name!, date: dayActivity.date!)
}) //create seperator and DayActivityView
}
}
}
.navigationBarTitle(Text("Dag activiteiten"))
.navigationBarItems(leading: EditButton(),trailing:
NavigationLink(destination: ActivityAanmakenView()) {
Text("Toevoegen")
})
}
}
(Простите за множество объектов печати)
Поэтому в основном я ищу способ переопределить переменную DatesThatAreNewer, потому что теперь она говорит, что она неизменна, и если я добавлю@State
происходит задержка, и код больше не работает, как ожидалось.