

SwiftUIで@Stateが初期化されない問題を抱えています。

SubViewが`user(String)`,
`dates([Date])`を持っていて、ContentViewでUserを切り替えた際に、dates([Date])が空になることを期待しているのですが、空になっていません。  
なぜでしょうか？

[code]

    struct ContentView: View {
      let users: [String]
      @State var selectedUser: String
    
      init() {
        self.users = ["User1", "User2", "User3"]
        self.selectedUser = users.first!
      }
      
      var body: some View {
        VStack {
          Text(selectedUser)
    
          Picker("User", selection: $selectedUser) {
            ForEach(users, id: \.self) { user in
              Text(user)
                .tag(user)
            }
          }
          .pickerStyle(.segmented)
          
          SubView(user: selectedUser)
        }
      }
    }
    
    struct SubView: View {
      let user: String
      @State var dates: [Date] = []
      
      var body: some View {
        List {
          Section(user) {
            Button("Add") {
              dates.append(.now)
            }
            
            ForEach(dates, id: \.self) { date in
              Text(date, format: .iso8601)
            }
          }
        }
      }
    }
    
[/code]


CC BY-SA 4.0
2022-12-19T09:50:45.863
92895
2022-12-19T10:12:42.060
2022-12-19T10:12:42.060
40856
40856
question
swift swiftui
SwiftUIでinitが呼ばれても、@Stateが初期化されない