Avatar
https://discordapp.com/channels/291054398077927425/291211035438874625/730700182039298048 を見ていて、この前の NavigationLink で再描画が波及するのが、 .sheet だとしないかなと思って試してみましたが、 .sheet でも波及しますね。( "Navigation" または "Sheet" ボタンを押してから "+" ボタンを押したときに結果がビューに反映される) struct ContentView: View { @ObservedObject var counter: Counter = .shared @State var isSheetPresented: Bool = false var body: some View { NavigationView { VStack { NavigationLink(destination: CounterView(count: counter.count)) { Text("Navigation") } Button("Sheet") { self.isSheetPresented = true } .sheet(isPresented: $isSheetPresented) { CounterView(count: self.counter.count) } } } } } struct CounterView: View { let count: Int var body: some View { VStack { Text("\(Counter.shared.count)") Button("+") { Counter.shared.count += 1 } } } } final class Counter: ObservableObject { @Published var count: Int = 0 static let shared: Counter = .init() } (edited)
8:53 AM
.sheet では @EnvironmentObject は引き継がれないけど再描画は影響する?無関係の二つかもしれないけど、一貫性がないような・・・。