Ios SwiftUI日期选择器并不总是更新状态<;日期>;变量

Ios SwiftUI日期选择器并不总是更新状态<;日期>;变量,ios,swift,swiftui,Ios,Swift,Swiftui,由于某些原因,DatePicker并不总是更新与其关联的日期变量。我做错什么了吗?我基本上可以随机滚动,有时我可以看到显示当前选择日期的文本(var$entryDate)与DatePicker显示我选择的内容不同-我的代码: struct addView: View { @State private var entryDate: Date = Date() var body: some View { VStack { HStack {

由于某些原因,
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()
}

甚至应该使用labelsHidden()。

使用您的建议会导致:
无法将类型为“(\u)->()”的值转换为预期的参数类型“(\u.Output)->Void”