Skip to content

Instantly share code, notes, and snippets.

@OskarGroth
Last active February 12, 2022 11:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save OskarGroth/1338d1f9b80ca1475cc30640b87c9076 to your computer and use it in GitHub Desktop.
Save OskarGroth/1338d1f9b80ca1475cc30640b87c9076 to your computer and use it in GitHub Desktop.
struct ContentView: View {
var body: some View {
VStack {
StateViewA()
StateViewB()
StateViewC()
StateViewD()
}
}
}
class StateHolder: ObservableObject {
var state = State()
}
class State: ObservableObject {
@Published var value = 0.0
}
struct StateViewA: View {
@StateObject var state = State()
var body: some View {
print("A body refresh")
return Slider(value: $state.value)
}
}
struct StateViewB: View {
@StateObject var stateHolder = StateHolder()
var body: some View {
print("B body refresh")
return Slider(value: $stateHolder.state.value)
}
}
struct StateViewC: View {
@StateObject var state = State()
var body: some View {
print("C body refresh")
return ControlView(value: $state.value)
}
}
struct StateViewD: View {
@StateObject var stateHolder = StateHolder()
var body: some View {
print("D body refresh")
return ControlView(value: $stateHolder.state.value)
}
}
struct ControlView: View {
@Binding var value: Double
var body: some View {
print("Control View refresh")
return Slider(value: $value)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment