SwiftUI PageTabView in iOS14.2 will Recall ChildView onAppear method Many times

I use TabView PageTabViewStyle with SwiftUI to display a pageview, when I swipe this TabView I find child view will Recall onAppear method Many times, Can someone tell me why?

This is my code
Code Block
import SwiftUI
struct Pageview: View {
@StateObject var vm = PageViewModel()
var body: some View {
VStack {
DragViewBar().padding(.top, 14)
TabView(selection: $vm.selectTabIndex) {
TextView(index: "0").tag(0)
TextView(index: "1").tag(1)
TextView(index: "2").tag(2)
TextView(index: "3").tag(3)
TextView(index: "4").tag(4)
TextView(index: "5").tag(5)
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
}
}
}
struct TextView: View {
let index: String
var body: some View {
VStack {
Text(index)
}
.onAppear { print(index) }
}
}
struct DragViewBar: View {
var body: some View {
Rectangle()
.frame(width:36.0,height:5.0).foregroundColor(Color.blue)
.cornerRadius(100)
}
}
class PageViewModel: ObservableObject {
@Published var selectTabIndex = 0
}

When I swipe this Tabview, The result of the console printing

Code Block
0
0
0
0
0
0
0
0
0
0
0
1
2
1
1
1
1
1
1
2
0
0
0
0
0
0
2
1
1
1
1
1
1
2


The correct case is to print only once per swipe
It just has a problem in ios14.2, 14.1 will be ok, you can load my code in Github: https://github.com/werbhelius/TabViewBug

Xcode version: 12.1 (12A7403)

Device: iPhone 6s iOS 14.2

I think you can reproduce this problem on any device in iOS 14.2

I look forward to your help to solve this problem. Thank you

I'm still seeing this issue in iOS 14.3, did you find a solution? I'm also finding that onAppear is sometimes called before a view even appears. For example, it'll call onAppear for view 3 after I swipe to view 2.
Same issue here.
I tried to use PageTabViewStyle within a VStack to display a price list.
The whole page is stuck by the TabView
SwiftUI PageTabView in iOS14.2 will Recall ChildView onAppear method Many times
 
 
Q