Avatar
omochimetaru 4/30/2023 2:51 AM
@kebo struct MidViewA: View { let condition: Bool @State var count = 0 var body: some View { if condition { Counter(name: "T", count: $count) } else { Counter(name: "F", count: $count) } } } struct Counter: View { var name: String @Binding var count: Int var body: some View { Button { count += 1 } label: { Text("\(name)=\(count)") } } } struct ContentViewF: View { @State var condition = false var body: some View { VStack { MidViewA(condition: condition) Button { condition.toggle() } label: { Text("toggle") } } } } これでおっしゃっている状況を構成できてると思ったんですがどうでしょうか? 「MidViewA に関して、 condition が変化した場合、 MidViewA.count がリセットする」 (MidViewA が、 ContentViewA を再現しようとしたものです) という話だと思います。 しかし、動かしてみるとtoggleボタンを押してもカウントがリセットしませんでした。