繁体   English   中英

SwiftUI DatePicker 并不总是更新 State<date> 多变的</date>

[英]SwiftUI DatePicker does not always update State<Date> variable

由于某种原因DatePicker并不总是更新与之关联的日期变量。 难道我做错了什么? 我基本上可以随机滚动,有时我可以到达显示当前选择日期( 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)")
      }
  }
}

这是一个已知的 SwiftUI 错误。 我用一些解决方法解决了它:

@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)

在您的视图结束时:

.onReceive(self.$refresh) { _ in
   self.refresh.toggle()
}

甚至应该与您的标签隐藏()一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM