有没有办法从 CoreData 设置起始 DatePicker 值?
Is there a way to set a starting DatePicker value from CoreData?
我有一个简单的应用程序,它有一个保存到核心数据的日期组件。我已经设置了一个允许编辑的视图,但是当这个编辑视图加载时,我的日期选择器总是显示当前日期,而不是之前在创建项目时输入的日期。
我尝试使用 onAppear() 来设置日期值,这确实有效。我加载了编辑视图,DatePicker 显示了我希望的存储日期。但是,如果我想更改选择器,Xcode 会抛出一条警告,说明 "Modifying state during view update, this will cause undefined behavior." 我不确定我是如何设置这个值的,而不是状态的原因和问题。
var thisCook: CookData
@State var updatedDate = Date()
DatePicker(selection: $updatedDate) {
Text("Cook Date:")
}.onAppear() {
self.updatedDate = self.thisCook.date
//Alert is shown for the line above
}
我不确定哪些代码在这里会有帮助,但这就是我的问题出现的地方。如果我需要展示更多,请告诉我。正如我之前所说,这确实会加载包含先前保存日期的编辑视图,但如果我想输入该日期,我会收到修改状态警报。
您将当前日期指定为 @State var updatedDate = Date()
,这就是它显示的原因。在 init 中,您还可以将 theCook.date
分配给 _updatedDate
.
为了避免 Modifying state during view update
可能有助于将状态移动到 ObservableObject
。
我有一个简单的应用程序,它有一个保存到核心数据的日期组件。我已经设置了一个允许编辑的视图,但是当这个编辑视图加载时,我的日期选择器总是显示当前日期,而不是之前在创建项目时输入的日期。
我尝试使用 onAppear() 来设置日期值,这确实有效。我加载了编辑视图,DatePicker 显示了我希望的存储日期。但是,如果我想更改选择器,Xcode 会抛出一条警告,说明 "Modifying state during view update, this will cause undefined behavior." 我不确定我是如何设置这个值的,而不是状态的原因和问题。
var thisCook: CookData
@State var updatedDate = Date()
DatePicker(selection: $updatedDate) {
Text("Cook Date:")
}.onAppear() {
self.updatedDate = self.thisCook.date
//Alert is shown for the line above
}
我不确定哪些代码在这里会有帮助,但这就是我的问题出现的地方。如果我需要展示更多,请告诉我。正如我之前所说,这确实会加载包含先前保存日期的编辑视图,但如果我想输入该日期,我会收到修改状态警报。
您将当前日期指定为 @State var updatedDate = Date()
,这就是它显示的原因。在 init 中,您还可以将 theCook.date
分配给 _updatedDate
.
为了避免 Modifying state during view update
可能有助于将状态移动到 ObservableObject
。