我想使用TabView显示一些数据。我正在为此使用分页视图样式。
struct ContentView: View {
@State var texts: [String] = ["first", "second"]
var body: some View {
TabView {
ForEach(texts, id: \.self) { text in
VStack {
Button(action: {
texts.append("next one...")
}, label: {
Text("Button")
})
Text(text)
}
}
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}
按预期,该视图将显示两个页面(“第一”和“第二”)。当我按下按钮时,会添加一个新的页面指示器(因此我在页面索引中看到三个点),但是我无法滚动到第三页。
我是否缺少某些东西,或者这是Xcode中的错误?
答案 0 :(得分:0)
因此,正如Asperi已经指出的那样,在TabView with "PageTabViewStyle" does not update it's content when @State var changes中看到了相同的行为
我还发现该帖子引用了相同的答案:https://www.hackingwithswift.com/forums/swiftui/how-do-i-append-a-new-page-into-tabview-pagetabviewstyle/2583
解决方案是在TabView中添加一个.id(id值),以便完全重新加载。