[英]SwiftUI DatePicker does not always update State<Date> variable
For some reason DatePicker
does not always update the date var associated with it.由于某种原因DatePicker
并不总是更新与之关联的日期变量。 Am I doing something wrong?难道我做错了什么? I can basically scroll around randomly and sometimes I can get to a point where my Text showing the current picked date ( var $entryDate
) differs from what the DatePicker
shows that I have selected - my code:我基本上可以随机滚动,有时我可以到达显示当前选择日期( var $entryDate
)的文本与我选择的DatePicker
显示的不同点 - 我的代码:
struct addView: View {
@State private var entryDate: Date = Date()
var body: some View {
VStack {
HStack {
Spacer()
DatePicker("_", selection: $entryDate, in: ...Date(), displayedComponents: .date)
.labelsHidden()
.datePickerStyle(WheelDatePickerStyle())
.frame(minWidth: 0, maxWidth: .infinity, alignment: .center)
.environment(\.locale, Locale.current)
Spacer()
}
Text("\(entryDate)")
}
}
}
This is a known SwiftUI Bug.这是一个已知的 SwiftUI 错误。 I solved it with a little workaround:我用一些解决方法解决了它:
@State private var refresh = false
DatePicker("_" + (refresh ? "" : " "), selection: $entryDate, in: ...Date(), displayedComponents: .date)
.labelsHidden()
.datePickerStyle(WheelDatePickerStyle())
.frame(minWidth: 0, maxWidth: .infinity, alignment: .center)
.environment(\.locale, Locale.current)
And at the end of your View:在您的视图结束时:
.onReceive(self.$refresh) { _ in
self.refresh.toggle()
}
Should even work with your labelsHidden().甚至应该与您的标签隐藏()一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.