SwiftUI onDisappear 未被调用
SwiftUI onDisappear not being called
我正在使用 ScrollView
和 VStack
在列表中显示一堆视图。但由于某种原因 onDisappear
没有被调用,onAppear
被调用了。
onDisappear
是否仅在该视图从屏幕上消失时才调用?或者当它被取消初始化时
struct AView: View {
var body: some View {
ScrollView(.vertical, showsIndicators: false) {
VStack {
ForEach(0...99, id: \.self) { _ in
SomeView()
.onDisappear {
print("Disappeared")
}
}
}
}
}
}
当您使用 VStack
时,它会在里面绘制所有视图 - 所有视图都被添加到视图树中,无论在屏幕上是否可见都没有关系。
如果您将其替换为 LazyVStack
,它会使内容变懒——只有可见的视图会添加到视图树中,并且 onDisappear
会按您预期的那样被调用。
我正在使用 ScrollView
和 VStack
在列表中显示一堆视图。但由于某种原因 onDisappear
没有被调用,onAppear
被调用了。
onDisappear
是否仅在该视图从屏幕上消失时才调用?或者当它被取消初始化时
struct AView: View {
var body: some View {
ScrollView(.vertical, showsIndicators: false) {
VStack {
ForEach(0...99, id: \.self) { _ in
SomeView()
.onDisappear {
print("Disappeared")
}
}
}
}
}
}
当您使用 VStack
时,它会在里面绘制所有视图 - 所有视图都被添加到视图树中,无论在屏幕上是否可见都没有关系。
如果您将其替换为 LazyVStack
,它会使内容变懒——只有可见的视图会添加到视图树中,并且 onDisappear
会按您预期的那样被调用。