我需要在特定日期显示特定视图,因此尝试根据日期进行显示,但并没有 工作,请帮我解决这个问题??
...
func UpdateData() {
let current = Calendar.current
let date = current.component(.day, from: self.date)
let weekDay = current.component(.weekday, from: self.date)
let day = current.weekdaySymbols[weekDay - 1]
self.data = DateType(Day: day, Date: "\(date)")
}
struct DateType {
var Day: String
var Date: String
}
var body: some View {
ZStack {
if self.data.Day == DAY_1 {. // <- here is my if statement
WorkOutView()}
}
}
答案 0 :(得分:0)
好吧,让我从基础开始-
首要原则是,如果您需要更新任何视图,则需要使用source of truth
,即@State
,但是我们可以通过不同的属性在子视图中使用source of truth
@ObservedObject, @Binding
,@StateObject
。
因此,在您的代码中,缺少的东西是代码源,需要更新视图。
因此,如果您要基于日期更改视图,则需要像这样初始化
@State let date = current.component(.day, from: self.date)
如果需要,也可以更改下面的代码,如果仅更改上面的代码有效,那么您就可以了。
struct DateType {
@State var Day: String
var Date: String
}