Swiftui 日期选择器';的选择与返回的日期不同

Swiftui 日期选择器';的选择与返回的日期不同,swiftui,Swiftui,所选日期为9/16/21,但返回的日期为9/16/20。返回的日期不同步。这里没有什么特别的,它只是日期选择器的标准用法。这是一个日期选择器的错误吗?如何解决这个问题 DatePicker(selection: $model.returnDate, in: model.returnDateRange, displayedComponents: .date) { Text("Return Date") } 如何复制: 将第一个日期选择器年份更改为2020年。如果

所选日期为9/16/21,但返回的日期为9/16/20。返回的日期不同步。这里没有什么特别的,它只是日期选择器的标准用法。这是一个日期选择器的错误吗?如何解决这个问题

DatePicker(selection: $model.returnDate, in: model.returnDateRange, displayedComponents: .date) {
                Text("Return Date")
}

如何复制:

将第一个日期选择器年份更改为2020年。如果你想再做一次,只需将第一个日期选择器的日期更改为20212022。。。

我认为这是一个日期选择器的错误

可以通过使用“离开发布者”更新返回日期来解决此问题

DatePicker(selection: $model.returnDate, in: model.returnDateRange, displayedComponents: .date) {
        Text("Return Date")
    }
    .onReceive(model.$departureDate, perform:model.updateReturnDate)


func updateReturnDate(_ date: Date) {
    if date > returnDate {
        returnDate = date
    }
}

这似乎是一个综合问题。选择器正在返回正确的数据。您可以通过打印returnDate属性的
didSet{…}
中的值来验证这一点。事实上,如果您在didSet闭包中设置消息文本,它可以正常工作。似乎水槽关闭执行得有点太快了。我暂时没有时间,但稍后将继续;-)