Environment

Habiendo visto como funciona el @EnviromentObject podemos decir que la property wrapper @Environment funciona de forma muy similar, permitiéndonos inyectar a nuestro código ciertos valores o propiedades, sin embargo en este caso nos permite inyectar valores, propiedades, keys predefinidas por el propio SwiftUI.

Siempre vendrá sucedido de (\.swiftUIKey)

@Environment(\\.dismiss) private var dismiss

var body: some View {
        Button("Done") {
            dismiss()
        }
    }

Cuando asignamos las propiedades podemos acceder a las mismas para definir métodos y realizar cambios en nuestra aplicación en función de dicho valor.

@Environment(\\.colorScheme) var colorScheme: ColorScheme

--

if colorScheme == .dark { // Checks the wrapped value.
    DarkContent()
} else {
    LightContent()
}