簡體   English   中英

SwiftUI onDisappear 未被調用

[英]SwiftUI onDisappear not being called

我正在使用ScrollViewVStack在列表中呈現一堆視圖。 但由於某種原因,沒有調用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會按你期望的那樣被調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM