问题描述
我有 ContentView
带有传递相应视图模型的视图列表。用户可以点击某个视图。此时将根据传递的类型显示全屏模态对话框。没关系。
有时我的视图模型正在更新,整个 ContentView
将被重新加载。问题是:调用 fullScreenCover 并重新创建 ChildEventView
。如何防止重新创建 ChildEventView
?
struct ContentView: View {
@State private var fullScreenType: FullScreenType?
// some stuff
var body: some View {
ScrollView {
Lazyvstack {
ForEach(eventListviewmodel.cardStates.indices,id: \.self) { index in
let eventVM = eventListviewmodel.eventVMs[index]
EventCardView(eventviewmodel: eventVM,eventId: $selectedEvent.eventId) {
self.fullScreenType = .type1
}
// some other views
}
}
}
.fullScreenCover(item: $fullScreenType,ondismiss: {
self.fullScreenType = nil
},content: { fullScreenType in
switch fullScreenType {
case .type1:
return ChildEventView(selectedEvent.eventId).erasetoAnyView()
// some other cases
}
})
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)