@Environment — это property wrapper, который позволяет SwiftUI-представлениям читать значения из общего окружения, такие как системные настройки и контекстные данные, передаваемые вниз по иерархии представлений.
Значения окружения включают:
Объяви @Environment-свойство, используя keypath, который указывает на конкретное нужное тебе значение:
@Environment(\.colorScheme) var colorScheme
@Environment(\.locale) var locale
@Environment(\.dismiss) var dismiss
Затем ты можешь обращаться к этим свойствам прямо внутри body твоего представления:
var body: some View {
Text(colorScheme == .dark ? "Dark Mode" : "Light Mode")
}
Ты можешь также определить и внедрить пользовательские значения окружения, используя .environment() на родительском представлении:
ParentView()
.environment(\.myCustomKey, someValue)
Дочерние представления смогут прочитать это значение, используя тот же подход с @Environment и keypath.
@Environment обеспечивает чистое разделение ответственности, позволяя представлениям реактивно реагировать на системное или общеприложенческое состояние без необходимости явно прокидывать свойства через каждый уровень иерархии.
Property wrapper @Environment позволяет представлениям читать значения, которые наследуются по иерархии представлений, устраняя необходимость передавать данные через промежуточные представления в качестве параметров.
Новый — ещё не проверен сообществом
Вы