Skip to content

Instantly share code, notes, and snippets.

@Koshimizu-Takehito
Created March 29, 2025 08:42
Show Gist options
  • Save Koshimizu-Takehito/4b2c84a2a786dfd008f4e3f59c335756 to your computer and use it in GitHub Desktop.
Save Koshimizu-Takehito/4b2c84a2a786dfd008f4e3f59c335756 to your computer and use it in GitHub Desktop.
EnvironmentValuesが大域変数ではないことを示すサンプルコード
import SwiftUI
extension EnvironmentValues {
@Entry var myColor = Color.blue
}
struct ScreenX: View {
@Environment(\.myColor) var myColor: Color
var body: some View {
HStack {
ScreenY()
ScreenY().environment(\.myColor, .orange)
}
.padding()
.background(myColor)
.scaledToFit()
.border(.red, width: 2)
}
}
struct ScreenY: View {
@Environment(\.myColor) var myColor: Color
var body: some View {
HStack {
ScreenZ()
ScreenZ().environment(\.myColor, .green)
}
.padding()
.background(myColor)
.scaledToFit()
.border(.red, width: 2)
}
}
struct ScreenZ: View {
@Environment(\.myColor) var myColor: Color
var body: some View {
myColor
.scaledToFit()
.border(.red, width: 2)
}
}
#Preview {
ScreenX()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment