【发布时间】:2021-11-24 11:13:57
【问题描述】:
我的视图中有这样的日期选择器:
struct BookTimeView: View {
@ObservedObject var viewModel: BookTimeViewModel
@State var startTime = Date.now
var body: some View {
DatePicker(“pick time”, selection: $startTime, displayedComponents: .hourAndMinute)
}
}
初始 startTime 取决于后端的数据。
所以在视图模型中我有从后端加载数据的 API 调用。
在成功回调中我想更改 startTime。
问题:如何从 ViewModel 更改 startTime?
P.S.:是否可以直接将 DatePicker 与 ViewModel 绑定?
我试图将@State var startTime = Date.now 放在视图模型中。
但它不起作用,我在 Xcode 中看到警告:
Accessing State's value outside of being installed on a View. This will result in a constant Binding of the initial value and will not update.
【问题讨论】:
-
为什么不直接将
DatePicker绑定到viewModel? -
@Asperi 当我在 ViewModel 中放置 State 属性时,我看到下一个警告:在安装到 View 之外访问 State 的值。这将导致初始值的常量绑定,并且不会更新。
-
让它使用你的api更新的和
@Published -
我要绑定到已发布的属性,例如stackoverflow.com/a/60058909/12299030。
-
@Asperi 哇。那就是我要找的。谢谢大佬!!