onAppear不会触发
struct ProfileView: View {
@StateObject var viewModel = ProfileViewViewModel()
var body: some View {
NavigationView {
VStack {
if let user = viewModel.user {
profile(user: user)
} else {
Text("Loading Profile...")
}
}
.navigationTitle("Profile")
}
.onAppear {
viewModel.fetchUser() //this is the problem
}
.fullScreenCover(isPresented: $viewModel.showingPreview) {
PreviewAvatarView()
}
}
}
我意识到,当我关闭全屏时,onAppear并没有触发。
3条答案
按热度按时间mtb9vblg1#
你可以使用
task
来代替onAppear
。task
将运行onAppear
,当Bool
是false
时。pdkcd3nj2#
onAppear
不会触发,因为底层视图没有出现-覆盖它的视图消失了,这不是一回事。但是,
fullScreenCover
有一个很少使用的可选参数onDismiss
,它可以满足您的需求,例如:Apple documentation
t5fffqht3#
你可以试试这个解决方案。
每当工作表关闭时,viewModel.fetchUser()将被执行。