SwiftUI:将项目动态添加到选项卡视图

SwiftUI:将项目动态添加到选项卡视图,swift,xcode,swiftui,tabview,Swift,Xcode,Swiftui,Tabview,我想使用TabView显示一些数据。我正在为此使用分页视图样式 struct ContentView: View { @State var texts: [String] = ["first", "second"] var body: some View { TabView { ForEach(texts, id: \.self) { text in VStack {

我想使用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中的一个bug?

正如Asperi已经指出的那样,同样的beheaviour也出现在了Xcode中

我还发现这篇文章引用了相同的答案:


解决方案是在TabView中添加一个.id(id值),以便它完全重新加载。

旁注:如果我删除PageTabViewStyle,它似乎可以正常工作。这是否回答了您的问题?当然!谢谢你!