#swift #swiftui
Вопрос:
Я пытаюсь создать @State
переменную внутри пользовательского инициализатора на основе переданной привязки. Я получаю ошибку Cannot convert value of type 'Bindinglt;Colorgt;' to expected argument type 'Color'
. Есть ли способ извлечь исходную ценность из самого ожидания? Это пример:
struct ContentView: View { @State var color = Color.red var body: some View { SomeView(color: $color) } } struct SomeView: View { @Binding var color: Color @State var someOtherColor: Color init(color: Bindinglt;Colorgt;) { _color = color _someOtherColor = State(initialValue: color) // ERROR: Cannot convert value of type 'Bindinglt;Colorgt;' to expected argument type 'Color' } var body: some View { Text("Hello, world!") } }
Ответ №1:
Вы можете использовать wrappedValue
свойство of Binding
для доступа к его базовому значению.
_someOtherColor = State(initialValue: color.wrappedValue)